防止在输入无效时禁用按钮jQuery验证
我曾经禁用asp.net Web表单按钮,以在单击时禁用该按钮防止在输入无效时禁用按钮jQuery验证,jquery,jquery-validate,webforms,Jquery,Jquery Validate,Webforms,我曾经禁用asp.net Web表单按钮,以在单击时禁用该按钮 $(document).ready(function () { $('[id$=btnSave]').click(function () { var button = this; setTimeout(function () { $(button).attr('disabled', 'disabled'); }, 100); }); });
$(document).ready(function () {
$('[id$=btnSave]').click(function () {
var button = this;
setTimeout(function () {
$(button).attr('disabled', 'disabled');
}, 100);
});
});
但当我在页面中添加插件时
$(document).ready(function () {
$("#form1").validateWebForm({
rules: {
myDate: {
customDate: true
},
nic: {
nicNo: true
}
}
});
...
<asp:TextBox ID="txtName" runat="server" CssClass="required" ></asp:TextBox>
$(文档).ready(函数(){
$(“#表格1”).validateWebForm({
规则:{
我的日期:{
customDate:正确
},
nic:{
尼科诺:是的
}
}
});
...
即使输入无效,它也会禁用按钮。如果输入无效,如何避免禁用按钮?在禁用按钮并提交之前尝试使用测试表单。根据评论,我知道您正在使用另一个插件初始化jQuery验证插件,但下面的核心概念是我们也会这样做
演示:
jQuery:
$(document).ready(function() {
$('#myform').validate({
// rules & options
});
$('#button').on('click', function (e) {
e.preventDefault();
if ($('#myform').valid()) {
$('#myform').submit();
$(this).attr('disabled', 'disabled');
}
});
});
<form id="myform">
....
<input id="button" type="submit" />
</form>
HTML:
$(document).ready(function() {
$('#myform').validate({
// rules & options
});
$('#button').on('click', function (e) {
e.preventDefault();
if ($('#myform').valid()) {
$('#myform').submit();
$(this).attr('disabled', 'disabled');
}
});
});
<form id="myform">
....
<input id="button" type="submit" />
</form>
我认为将click函数包装在ready中是个问题..jQuery Validate插件没有使用
validateWebForm()
。初始化函数只是调用.Validate()
@sasi No当我移除就绪
功能时,它甚至没有禁用按钮…@Sparky是的,我正在使用另一个插件。更新了问题。谢谢…你想在输入有效时禁用按钮吗?这会正确禁用按钮,但不会提交表单。可能需要它来附带设置超时
乐趣在我的原始代码中使用了Action(但重新加载了相同的页面)。我尝试添加它,但仍然无法使其工作。它工作…必须添加setTimeout
函数并删除行$(“#myform”)。submit();
。但是非常感谢……)@Nalaka526,我不确定,尽管这可能是因为我忘记包含preventDefault
,它从正常单击中删除提交,然后仅在表单有效时才将其放回。更新为新代码,但未捕获引用错误:行e中未定义e。preventDefault()
..@Nalaka526,e
必须传递到调用它的函数中…函数(e)