这可能很简单,但我在这里遇到了困难。我在.um_frm
的所有字段中运行所需的属性,然后检查所有字段是否都为空。我的问题是,即使填写了一个字段,它也不会检查所有字段,而是通过它。如何确保填写所有字段?
$('#um_ok').on( 'click', function() {
$('.um_frm').attr('required','required');
var value=$.trim($(".um_frm").val());
if(value.length === 0){
//proceed...
}
});
我也试过这个,但并不是太过分了
$('#um_ok').on( 'click', function() {
$('.um_frm').attr('required','required');
if($.trim($(".um_frm").val()) === ""){
//proceed...
}
});
答案 0 :(得分:4)
使用过滤器查看是否有任何字段为空(长度不真实,即0,因此为!
):
$('#um_ok').on( 'click', function() {
$('.um_frm').attr('required','required');
var anyBlank = $(".um_frm").filter(function(){
return !$.trim($(this).val()).length;
}).length;
// If not any blanks...
if(!anyBlank){
//proceed...
}
});
更新:(感谢@George)
由于required
是一个真正的HTML元素属性,而不仅仅是一个属性,您应该使用prop
(然后可以将更可读的布尔值作为其开/关状态):
$('.um_frm').prop('required', true);
这样做的好处是可以创建没有值的清除required
属性(而不是required="required"
等)。
答案 1 :(得分:1)
工作FIDDLE
使用以下
$('#um_ok').on('click', function () {
var status = true;
$('.um_frm').each(function () {
if ($.trim($(this).val()) == '') {
status = false;
}
});
if (status) {
alert("all r ok");
} else {
alert("sumthng missing");
}
});
答案 2 :(得分:0)
希望这样做
var left_blank =$('#um_ok').on( 'click', function() {
$(".um_frm").filter(function () {
return !$.trim($(this).val()).length;
}).length;
});
if(!left_blank){
//proceed
}