我有几个输入字段,类名为required
。
我在下面有一个代码来检查我的所有<input>
字段是否都有值,如果不为空或为空,它将显示/取消隐藏特定的div
。
但它似乎对我有用。
此外,默认情况下,#print
通过CSS显示为无。
<!-- index.php -->
<input type="text" id="getID" class="required form-control" placeholder="id">
<input type="text" id="getName" class="required form-control" placeholder="name">
<!-- script.js -->
$(document).ready(function() {
$('input.required').each(function() {
if($(this).val() != "") {
$("#print").show();
}
else {
$("#print").hide();
}
});
});
答案 0 :(得分:2)
我建议:
$('#print').toggle(!($('input.required').length == $('input.required').filter(function () {
return this.value;
}).length));
显然,这应该在submit
上运行,假设您只想在提交之前将#print
元素显示为验证。
参考文献:
答案 1 :(得分:1)
正如我在上面的评论中所述,在用户有机会输入任何内容之前,您正在检查页面加载时的值。如果您的页面上有一个按钮,请将事件绑定到将在正确的时间触发该功能的事件。
有点像jFiddle
的东西<强>的index.php 强>
<input type="text" id="getID" class="required form-control" placeholder="id">
<input type="text" id="getName" class="required form-control" placeholder="name">
<div id="button">Submit</div>
<div id="print">You're missing something D:!</div>
<强>的script.js 强>
$('#button').on('click', function() {
$('#print').hide();
var error=false;
$('input.required').each(function() {
if($(this).val() == "") {
error=true;
}
});
if(error) {
$('#print').show();
}
});
答案 2 :(得分:0)
尝试
$(document).ready(function () {
//the default state
var valid = true;
$('input.required').each(function () {
//if the value of the current input is blank then the set is invalid and we can stop the iteration now
if ($.trim(this.value) == '') {
valid = false;
return false;
}
});
//set the visibility of the element based on the value of valid state
$("#print").toggle(!valid);
});