Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery时没有重复选择器_Jquery - Fatal编程技术网

使用jQuery时没有重复选择器

使用jQuery时没有重复选择器,jquery,Jquery,我有一个下拉选择器,需要根据选择加载表单的其他部分 我在下面重复这个选择器几次,需要确保没有选择相同的选项。我想我需要运行所有mySelector的所选选项,如果选择了该选项,则会显示一些错误消息。不知道怎么做 以下是到目前为止我得到的信息: $('.mySelector').change(function(){ var selectForm = '#' + $(this).val(); $('div').next('.fLoad').load('formParts.html '

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

我在下面重复这个选择器几次,需要确保没有选择相同的选项。我想我需要运行所有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>
$('.mySelector').change(函数(){
var selectForm='#'+$(this.val();
$('div').next('.fLoad').load('formParts.html'+selectForm);
});
选择一个
汽车详情
船只详情
列车详细信息
自行车详情
子细节
选择一个
汽车详情
船只详情
列车详细信息
自行车详情
子细节
选择一个
汽车详情
船只详情
列车详细信息
自行车详情
子细节

制作一个布尔值字典,这样您只需在选项上循环一次

var alreadyUsed = {};

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

    alreadyUsed[thisVal] = true;
});

您的HTML看起来很时髦:选项标记没有关闭…当前代码只有一个选择器,但没有关闭选项。HTML不需要关闭。但是当然,我可以接近。感谢您提到这一点。ID在HTML文档中必须是唯一的。事件处理程序将只添加到ID为mySelector的第一个元素中
next(“#fLoad”)
如果下一个元素具有ID
fLoad
,则选择下一个元素,但您只有class
fLoad
的元素。很好!我会更新的。我尝试多次复制单个功能。是的,我更新了代码。谢谢。这听起来很有趣。我是否在我的$('.mySelector').change(function(){function)中添加此项?如果要在每次更改时进行检查,请确定。否则,请将其附加到“提交”按钮或其他任何按钮。您可能需要添加默认的“选择一项”值或其他值,并忽略任何尚未更改的选择,否则您将立即得到错误