jquery多选择空验证

时间:2014-05-23 20:29:32

标签: javascript jquery

我需要验证多个选项以查看是否选择了一个选项...如果没有选择选项我想要一个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>

我的jquery:

$(document).on('submit', 'form', function(e) {
        var sickfull        = $(".sickfull").val();
        var errormessage    = "";

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

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

3 个答案:

答案 0 :(得分:1)

您应该对所有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;
        }
    });

});

答案 1 :(得分:0)

我做了一些不同的事情,允许任意数量的select元素使用相同的类 - http://jsfiddle.net/jayblanchard/X6GT4/

$(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       
});

当然你可以为函数添加自己的错误处理,但这应该给你一个开始。这里的关键是sickfullCheckSum不等于sickfullElements,表示从类.sickfull的任意数量的选项中选择了至少一个选项。

答案 2 :(得分:-1)

您无法使用.val()获取多个字段的值。您的选择器返回两个元素,因此您需要检查每个元素以获取其对应的值。

var sickfull = $(".sickfull");

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

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