我创建了一个多部分表单,需要验证表单上可见字段集中的已完成字段。如果完成了所有必填字段,则将启用下一步按钮。
到目前为止,我已经玩了几个选项,其中没有一个是100%有效的
HTML:
<div id="set1">
<fieldset>
<div>
<label>field 1</label>
<input name="f1" type="text" /><br />
<span class="error"></span>
</div>
<div>
<label>field 2</label>
<input name="f2" type="text" /><br />
</div>
</fieldset>
</div>
<div id="set2">
<fieldset>
<div>
<label>field 3</label>
<input name="f3" type="text" /><br />
<span class="error"></span>
</div>
.
.
.
</fieldset>
</div>
jQuery的:
$input = $('fieldset:visible div:has(span[class="error"]) input');
$next = $('fieldset:visible .button');
$input.keyup(function() {
$input.each(function() {
var trigger = false;
$input.each(function() {
if (!$(this).val()) {
trigger = true;
}
});
trigger ? $next.attr('class', 'disable') : $next.removeAttr('class');
});
});
有人可以帮我理解我做错了什么吗?看来keyup事件没有触发。
答案 0 :(得分:0)
你应该使用jQuery验证器。它会让你的生活更轻松:
答案 1 :(得分:0)
首先,keyup事件将被解雇,不用担心。第二件事,第if (!$(this).val()) {
行有一个重大错误。这种拼写是由标准javascript中的错误思考引起的。转换为它你想测试值是否存在。事实是,价值确实存在。它只是“”或真正的价值。
看看my example。经过一些修正后,它可以按照您的意愿工作,希望如此。