我有一个具有一些固定值的默认数组,我从中显示一个多选下拉菜单给用户。如果缺少值,我想提醒用户

HTML

<form action="#" method="post">
    <fieldset>
        <label for="selectedItemLists">Select values:</label>
        <select id="selectedItemLists" name="selectedItemLists" multiple>
            <option val="value1" selected >value1</option>
            <option val="value2">value2</option>
            <option val="value3" selected>value3</option>
            <option val="value4">value4</option>
            <option val="value5">value5</option>
        </select>
    </fieldset>
    <fieldset>
        <input type="submit" value="submit" />
    </fieldset>
</form>

jQuery
var default_values = ["value1","value3"];

$("#selectedItemLists").live('focusout',function(){
    var new_selectedvalues = $("#selectedItemLists").val();

    //here i want to compare both the arrays and alert him that default values are missing
});

最佳答案

一个简单的嵌套$.each循环就可以做到这一点:

Demo

//here i want to compare both the arrays and alert him that default values are missing
$.each(default_values, function(_, defaultVal){
    var found = false;
    $.each(new_selectedvalues, function(){
        if(this == defaultVal){
            found = true;
            return false;
        }
    });

    if(!found){
        alert("Please select the default: " + defaultVal);
    }
});

注意:jQuery 1.7不推荐使用.live(),因此应改用.on(除非您使用的是旧版本)。

07-24 09:48
查看更多