gpt4 book ai didi

jquery - 成功 jQuery 验证后启用禁用按钮

转载 作者:行者123 更新时间:2023-12-03 22:19:37 29 4
gpt4 key购买 nike

我有以下代码,其中有 2 个电子邮件输入字段,我需要验证它们是否相同,并且使用 jQuery validate equalTo 成功运行。

<div class="control-group">
<label class="control-label" for="inputEmail"><strong>Email Address</strong></label>
<div class="controls">
<input type="email" name="inputEmail" placeholder="jane.smith@email.com" id="inputEmail" required>
</div>
<label class="control-label" for="inputEmailConfirm"><strong>Confirm Email Address</strong></label>
<div class="controls">
<input type="email" name="inputEmailConfirm" placeholder="jane.smith@email.com" id="inputEmailConfirm" required>
</div>
</div>
<button type="submit" id="emailSubmit" disabled="disabled" class="btn btn-danger" data-toggle="tooltip" data-placement="bottom" title="Click me to buy">Credit Card Checkout &raquo; </button>

成功验证后,我希望启用该按钮,但似乎不知道如何执行此操作。

 $('#ccSelectForm').validate({
rules: {
inputEmail: {
required: true,
email: true
},
inputEmailConfirm: {
required: true,
email: true,
equalTo: '#inputEmail'
},
}
});

理想情况下,作为奖励,我想设置表单控件以利用 Bootstrap3 中的验证状态,详细信息请参见此处 - http://getbootstrap.com/css/#forms-control-validation

fiddle 在这里 http://jsfiddle.net/4wU5m/

最佳答案

当所有字段都有效而无需先单击提交按钮时,没有 jQuery Validate 插件回调选项/函数会触发。

您需要创建一个外部 keyup Blu 事件处理程序来检查表单的有效性并相应地启用/禁用按钮;每次按下按键或离开字段时。

演示:http://jsfiddle.net/p628Y/1/

$(document).ready(function () {

$('#ccSelectForm').validate({
rules: {
inputEmail: {
required: true,
email: true
},
inputEmailConfirm: {
// required: true, // <-- redundant
// email: true, // <-- redundant
equalTo: '#inputEmail'
} // <-- removed trailing comma
}
});

$('#ccSelectForm input').on('keyup blur', function () { // fires on every keyup & blur
if ($('#ccSelectForm').valid()) { // checks form for validity
$('button.btn').prop('disabled', false); // enables button
} else {
$('button.btn').prop('disabled', 'disabled'); // disables button
}
});

});

由于 jQuery Validate 插件会动态禁用浏览器的 HTML5 验证,因此我从标记中删除了 required 属性,并将 type="email" 更改为 type= “文本”。 (您已经在插件中指定了这些验证规则。)

<input type="text" name="inputEmail" placeholder="jane.smith@email.com" id="inputEmail" />
<input type="text" name="inputEmailConfirm" placeholder="jane.smith@email.com" id="inputEmailConfirm" />

使用 equalTo 规则时,您也无需指定所有规则两次,因为第二个字段必须始终与第一个字段匹配。

<小时/>

编辑:

在上述场景中,您的页面完全依赖于 JavaScript。换句话说,如果没有 JavaScript,该按钮始终处于禁用状态。

如果您已设置服务器端验证并希望页面独立于 JavaScript,则需要从按钮标记中删除 disabled="disabled" 并将其添加到您的页面JavaScript 就在 DOM 就绪事件处理程序中。

$('button.btn').prop('disabled', 'disabled');

在这种情况下,如果没有 JavaScript,您仍然会有一个工作按钮,而如果使用 JavaScript,该按钮会在页面加载时以编程方式禁用。

关于jquery - 成功 jQuery 验证后启用禁用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21953694/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com