2016-09-03 6 views
1

複数の選択オプションフィールドがあります。Javascript:最初に選択したオプション以外の複数の選択ドロップダウンが同じ値を持っているかどうか確認してください。

HTML

<select class="selectRound" name="criteriaRound[]" > 
    <option selected="true" disabled="true"> - select -</option> 
    <option value="16">value1</option> 
    <option value="17">value2</option> 
    <option value="18">value3</option> 
    <option value="19">value4</option> 
</select> 

<select class=" selectRound" name="criteriaRound[]"> 
    <option selected="true" disabled="true"> - select -</option> 
    <option value="16">value1</option> 
    <option value="17">value2</option> 
    <option value="18">value3</option> 
    <option value="19">value4</option> 
</select> 

<select class=" selectRound" name="criteriaRound[]"> 
    <option selected="true" disabled="true"> - select -</option> 
    <option value="16">value1</option> 
    <option value="17">value2</option> 
    <option value="18">value3</option> 
    <option value="19">value4</option> 
</select> 

そして今、私はそれらのそれぞれが同じ値を持っているかどうかを検証しようとしています。しかし、検証で最初に選択されたインデックスを避ける方法。何が起きるかは、最初にオプションを選択した場合、他の残りの選択フィールドはまだ検証中です。

https://jsfiddle.net/uhhk8vd3/2/

JS

$(document).on('change','.selectRound', function(e){ 
var tralse = true; 
var selectRound_arr = []; // for contestant name 
$('.selectRound').each(function(k, v){ 
    var getVal = $(v).val(); 
    if($.trim(selectRound_arr.indexOf(getVal)) != -1){ // 
     tralse = false; 
     //it should be if value 1 = value 1 then alert 
     //But -select- = -select- are still keep validating, how to prevent this 
     alert('Contestant cannot be same name'); 
     return false; 
    }else{ 
     selectRound_arr.push($(v).val()); 
    } 

}); 
if(!tralse){ 
    return false; 
} 
}); 
+0

は "=値を設定する" または値は= "選択し、デフォルトのために" を選択し、選択したオプションの場合値がnullでない場合、条件をチェックします。 – Sasikumar

答えて

0

更新フィドルはここにあるhttps://jsfiddle.net/uhhk8vd3/3/

$(document).on('change', '.selectRound', function(e) { 
    var tralse = true; 
    var selectRound_arr = []; // for contestant name 
    $('.selectRound').each(function(k, v) { 
    var getVal = $(v).val(); 
    //alert(getVal); 
    if (getVal && $.trim(selectRound_arr.indexOf(getVal)) != -1) { 
     tralse = false; 
     //it should be if value 1 = value 1 then alert, and not those if -select- = -select-. how to avoid those -select- 
     alert('Contestant cannot be same name'); 
     $(v).val(""); 
     return false; 
    } else { 
     selectRound_arr.push($(v).val()); 
    } 

    }); 
    if (!tralse) { 
    return false; 
    } 
}); 
+0

うわー、ありがとう@atul –

関連する問題