【发布时间】:2015-05-18 05:45:16
【问题描述】:
我正在尝试使用 Jquery 验证按钮单击时的字段,但问题是事件和 jquery 事件背后的代码似乎是并行运行的。
(已更新)
<asp:Button ID="btnsave" runat="server" ClientIDMode="Static" OnClientClick="return clientFunction()" CssClass="ButtonText"
Text="SAVE" OnClick="btnsave_Click" />
客户端验证:
<script type="text/javascript">
function clientFunction() {
var isValid = true;
$('#txtsupplieruserid,#txtsuppliername,#txtbusinessemailid,#txtorganizationname,#txtphonenumber,#txtcity,#txtstate,#txtpostalcode,#txtaddress').each(function () {
if ($.trim($(this).val()) == '') {
isValid = false;
$(this).css({
"border": "1px solid red",
"background": "#FFCECE"
});
}
else {
$(this).css({
"border": "",
"background": ""
});
}
});
if (isValid == false) {
e.preventDefault();
return isValid;
}
else {
return isValid;
}
}
</script>
如果它通过客户端验证,我想先通过 Jquery 进行验证,而不是转到后面的代码。我想使用 Jquery 而不是纯 Javascript 来做到这一点。
【问题讨论】:
-
更改您的 jquery 点击处理程序以返回 true 或 false。然后使用 return 来返回 true(并继续运行服务器端函数)或 false(不运行服务器端函数)。
-
@DarrenS 只需将返回值更改为 true 或 false 就足够了吗?
-
通常我会在我的按钮上使用 OnClientClick 属性来调用返回布尔值的客户端函数。例如 如果函数返回 true,它将引发回发并继续执行服务器端 btnSave_Click 函数。
标签: javascript jquery asp.net validation