没有jQuery的重复选择器

时间:2011-02-10 13:28:13

标签: jquery

我有一个下拉选择器,需要根据选择加载表单的其他部分。

我在下面重复这个选择器几次,需要确保没有选择相同的选项。我想我需要运行所有mySelector的选定选项,如果选中该选项则显示一些错误消息。不确定如何。

这是我到目前为止所得到的:

$('.mySelector').change(function(){
    var selectForm = '#' + $(this).val();
    $('div').next('.fLoad').load('formParts.html ' + selectForm );
});

<select class="mySelector">
   <option value="selectOne">Select one</option>
   <option value="o1">Car details</option>
   <option value="o2">Boat details</option>
   <option value="o3">Train details</option>
   <option value="o4">Bike details</option>
   <option value="o5">Sub details</option>
</select>

<div class='fLoad'> </div>
   <option value="selectOne">Select one</option>
   <option value="o1">Car details</option>
   <option value="o2">Boat details</option>
   <option value="o3">Train details</option>
   <option value="o4">Bike details</option>
   <option value="o5">Sub details</option>

<div class='fLoad'> </div>

<select class="mySelector">
   <option value="selectOne">Select one</option>
   <option value="o1">Car details</option>
   <option value="o2">Boat details</option>
   <option value="o3">Train details</option>
   <option value="o4">Bike details</option>
   <option value="o5">Sub details</option>
</select>

<div class='fLoad'> </div>

1 个答案:

答案 0 :(得分:1)

创建一个值为bools的字典,这样你只需要遍历选项一次。

var alreadyUsed = {};

$("select").each(function(){
    var thisVal = $(this).val();
    if(alreadyUsed[thisVal]){
        // found a dupe
    }

    alreadyUsed[thisVal] = true;
});