我正在尝试使用 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 来做到这一点。
最佳答案
您可以使用 OnClientClick
进行客户端验证,如果验证通过,返回 true
,否则 返回 false
。如果返回 true,将调用服务器端函数,否则不会。
<asp:Button ID="btnsave" runat="server" ClientIDMode="Static" CssClass="ButtonText" Text="SAVE" OnClientClick="return clientFunction()" onclick="btnsave_Click" />
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) {
return false;
}
else {
return true;
}
}
如果您的控件是服务器控件
,那么您可能需要使用ClientIDMode="Static"
。所以他们的 ID 保持不变。
关于javascript - 在 asp.net 中单击按钮时客户端 Jquery 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30295863/