Javascript 在多选下拉列表中检查重复值

Javascript 在多选下拉列表中检查重复值,javascript,jquery,validation,Javascript,Jquery,Validation,我正在对动态添加的多个select下拉列表进行验证 如何验证是否选择了重复的值您可以这样编写代码。单击“保存”按钮可调用此选项 function save() { var selects = document.getElementsByTagName('select'); var values = []; for(i=0;i<selects.length;i++) { var select = selects[i]; if(value

我正在对动态添加的多个select下拉列表进行验证


如何验证是否选择了重复的值

您可以这样编写代码。单击“保存”按钮可调用此选项

function save() {
    var selects = document.getElementsByTagName('select');
    var values = [];
    for(i=0;i<selects.length;i++) {
        var select = selects[i];
        if(values.indexOf(select.value)>-1) {
            alert('duplicate exists'+select.value); break;
        }
        else 
            values.push(select.value);
    }
}

此代码如何阻止用户提交,直到值都是唯一的? 答复:


您可以在生成后删除Duplicate select。请与我们共享您的验证代码。另外,JSFIDDLE链接应该能够重现您所面临的问题;我在寻找验证,而不是deleteupdated fiddle@Matarishvan。我建议在询问之前,请尝试一些方法。在值都是唯一的之前,该代码如何阻止用户提交?我知道这有点老了,但我也遇到了类似的问题。但到目前为止,这似乎是正确的方向。@helloworld更新了答案。您还可以处理一些布尔值
function save() {
    var selects = document.getElementsByTagName('select');
    var values = [];
    for(i=0;i<selects.length;i++) {
        var select = selects[i];
        if(values.indexOf(select.value)>-1) {
            alert('duplicate exists'+select.value); break;
        }
        else 
            values.push(select.value);
    }
}
function save() {
        var selects = document.getElementsByTagName('select');
        var values = [];
        for(i=0;i<selects.length;i++) {
            var select = selects[i];
            if(values.indexOf(select.value)>-1) {
                alert('duplicate exists'+select.value); return; //if duplicates found we are returning. without save and no need to continue.
            }
        }
    //saveform here
    }