我正在尝试在我的按钮的点击事件发生在服务器端之前运行一些javascript,但是javascript代码运行,并且服务器端代码在此之后运行,无论如何。这就是我所拥有的:
<script type="text/javascript" language="javascript">
$(document).ready(function() {
SubmitClick = function() {
if ($("#<%= fuFile.ClientID %>").val() == "") {
$("#error").html("File is required");
return false;
}
}
});
</script>
<asp:FileUpload ID="fuFile" runat="server" />
<asp:Button ID="btnSubmit" runat="server" Text="Submit"
OnClientClick="SubmitClick()" UseSubmitBehavior="false"
OnClick="btnSubmit_Click" />
<span id="error"></span>
我认为在javascript函数中设置UseSubmitBehavior="false"
并返回false
会有效,但事实并非如此。在服务器端代码运行之前,我的错误消息会显示一秒钟。
我在这里做错了什么?
答案 0 :(得分:12)
通常,要取消客户点击,您需要添加此return false;
您可以更新代码以执行此操作,它应该有效:OnClientClick="return SubmitClick();"
答案 1 :(得分:6)
如果您使用的是JQuery:
$btn.on("click", function (e) {
e.preventDefault();
}
答案 2 :(得分:2)
对我有用的是:
删除OnClientClick="SubmitClick()"
并将UseSubmitBehavior
设置为true。
然后将$(document).ready()
方法更改为
$(document).ready(function () {
$('#btnSubmit').click(function () {
if ($("#<%= fuFile.ClientID %>").val() == "") {
$("#error").html("File is required");
return false;
}
return true;
});
});
答案 3 :(得分:0)
您需要使用OnClientClick事件中的return返回已提交行为的取消。
试试这个
OnClientClick="return SubmitClick()"