Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery多重选择空验证_Javascript_Jquery - Fatal编程技术网

Javascript jquery多重选择空验证

Javascript jquery多重选择空验证,javascript,jquery,Javascript,Jquery,我需要验证多个选择以查看是否选择了一个选项。。。如果未选择任何选项,我需要一个jquery弹出错误警报,声明选择其中一个选项,但我只能通过单个选择来确定如何执行此操作…而不是像下面这样的多个选择: <select name="sickFull[0]" class="select2 sickfull"> <option></option> <option value="1">Full day</option> <option val

我需要验证多个选择以查看是否选择了一个选项。。。如果未选择任何选项,我需要一个jquery弹出错误警报,声明选择其中一个选项,但我只能通过单个选择来确定如何执行此操作…而不是像下面这样的多个选择:

<select name="sickFull[0]" class="select2 sickfull">
<option></option>
<option value="1">Full day</option>
<option value="2">Half day (AM)</option>
<option value="3">Half day (PM)</option>
</select>

<select name="sickFull[1]" class="select2 sickfull">
<option></option>
<option value="1">Full day</option>
<option value="2">Half day (AM)</option>
<option value="3">Half day (PM)</option>
</select>
不能使用
.val()
获取多个字段的值。选择器返回两个元素,因此需要检查每个元素以获取其对应的编码值

var sickfull = $(".sickfull");

sickfull.each(function () {
    if ($(this).val() == "") {
        // set your error message
        return false; // stop looping
    }
}

if (errormessage != "") {
    // ...
}

您应该对所有
sickfull
类运行检查

您还应该在
sickfull
上运行另一个检查,以检查是否选择了某些内容

$(document).on('submit', 'form', function(e) {

    $('.sickfull').each(function(){
        var sickfull        = $(this).val();
        var errormessage    = "";

        if (!sickfull)
            errormessage = "Please select an option";

        if (errormessage != "") {
            $.Zebra_Dialog(errormessage, { 'type': 'warning', 'title': 'Error', 'width': '500' });
            return false;
        }
    });

});

我做了一些不同的事情,允许使用相同类的任意数量的
select
元素-


当然,您可以将自己的错误处理添加到函数中,但这应该给您一个开始。此处的键用于使
sickfullCheckSum
不等于
sickfullElements
,表示从类
的任意数量的选择中至少选择了一个选项。sickfull

您的代码应正常工作。检查空
val()
的方法将在单选和多选字段上都有效。你检查过控制台有没有错误吗?你能用小提琴来说明你的问题吗?好的,对不起。。实际上,当两个选项都选择了一个选项时,问题就出现了。错误消息“请选择一个选项”仍将收到警报,如果两个选项都有选项,则不应发出警报selected@rubberchicken试着为您的
运行不同的检查,如果
查看我的回答,请设置一个不关心您在同一类@rubberchicken中的选择方式的检查-只要选择了一个,您就可以了。如果发现一个值为空,此操作将停止,它需要知道两者是否都是。我尝试过这个,但当两个选项都有选项时,仍然会收到zebra错误警报selected@rubberchicken适合我:(每次提交后点击run…我没有post方法)嗯,让我检查一下我的代码。。。如果它对你有用,那一定是我出了什么问题!使用控制台(f12)检查并查看是否有任何错误。一旦页面已经运行,您还可以使用控制台检查元素的值。。。只需将其放在控制台行
$('.sickfull').each(function(){console.log(“1-”+$(this.val());})
$(document).on('submit', 'form', function(e) {

    $('.sickfull').each(function(){
        var sickfull        = $(this).val();
        var errormessage    = "";

        if (!sickfull)
            errormessage = "Please select an option";

        if (errormessage != "") {
            $.Zebra_Dialog(errormessage, { 'type': 'warning', 'title': 'Error', 'width': '500' });
            return false;
        }
    });

});
$(document).on('submit', 'form', function (e) {
    e.preventDefault();
    var sickfullCheckSum = 0;
    var sickfullElements = $(this).find('.sickfull').length; // how many elements could be selected?
    $('.sickfull').each(function() {
        ( '' == $(this).val() ? sickfullCheckSum++ : sickfullCheckSum-- ); // change the checksum as appropriate
    });
    (sickfullCheckSum == sickfullElements ? console.log('please select something') : console.log('good') ); // test the checksum against the elements       
});