【发布时间】:2014-09-30 09:18:59
【问题描述】:
在$(document).ready 上,提交按钮被禁用。仅当整个表单有效时才应启用该按钮,即 1) 选择了一个单选(水果),以及 2) 选择了一个或多个复选框(场合)。我在这里查看了很多答案,并尝试使用在文档更改上测试 if (form.valid()) 的函数,但是当只选择水果时,评估结果为 true。我相信submitHandler 是我想要在整个表格中得到的,但它并没有被解雇。将收音机更改为复选框并没有什么不同。
html
<form id="categorizer-form" method="POST" action="\submit">
<div class="container">
<br><p>1. What <strong>kind</strong> of fruit is this?</p>
<div class="btn-group col-xs-12" data-toggle="buttons">
<label class="btn btn-default">
<input type="radio" name="kind" id="apple" value="apple">apple
</label>
<label class="btn btn-default">
<input type="radio" name="kind" id="orange" value="orange">orange
</label>
</div>
</div>
<div class="container">
<br><p>2. On what <strong>meal occasions</strong> would you eat it? (Please choose as many as apply.)</p>
<div class="btn-group col-xs-12" data-toggle="buttons">
<label class="btn btn-default">
<input type="checkbox" name="occasion" id="breakfast" value="breakfast" >breakfast
</label>
<label class="btn btn-default">
<input type="checkbox" name="occasion" id="lunch" value="lunch" >lunch
</label>
<label class="btn btn-default">
<input type="checkbox" name="occasion" id="dinner" value="dinner" >dinner
</label>
<label class="btn btn-default">
<input type="checkbox" name="occasion" id="snack" value="snack" >snack
</label>
</div>
</div>
<!-- ######################### -->
<br>
<br>
<div class="well well2">
<div class="container">
<div class="row">
<div class="col-xs-12 text-center">
<button class='btn btn-lg btn-danger btn-next' type='submit' id='Next'>Click to submit</button>
</div>
</div>
</div>
</div>
</form>
js
$(document).ready(function() {
$('.btn-next').attr('disabled', true)
$( 'form#categorizer-form' ).validate({
debug: true,
rules: {
kind: {
required: true,
},
occasion: {
required: true,
}
},
submitHandler: function(form) {
alert('submitHandler fired')
$('.btn-next').prop('disabled', false).removeClass('btn-danger').addClass('btn-success'); // enables button
}
});
});
【问题讨论】:
-
看看updated fiddle。我看到的唯一奇怪的事情是“此字段是必需的”位置不正确。
-
它不是在小提琴中触发,还是在您的代码中触发?它对我有用(
alert('hi')被触发并且按钮变为绿色)。也许两个丢失的;会导致问题...我在this fiddle 中添加了它们。 -
很奇怪。如 Chrome、Firefox 或 Safari 中所述,该小提琴 (v10) 不适用于我。
-
我已经在 Chrome 37.0.2062.124、Opera 24.0 和 Firefox 31.0 中对其进行了测试——它可以工作。在这种情况下,我什至不知道该建议什么。
-
@Regent,也许在您点击按钮之前 将按钮变为绿色会更好。 jsfiddle.net/xgb64b4p
标签: jquery twitter-bootstrap-3 jquery-validate