我在 0 到 10 之间有多个相同数字的选择。值 1 到 10 必须是唯一的,因此当用户选择已在另一个选择上选择的选项时,我希望另一个切换到 0 值并触发在 db 中调用更新的更改事件。
我已经尝试过一些方法,比如
$("select option[value="+pos+"]").not("#"+id+" option").val(0).change();
其中 pos 是值,id 是用户刚刚更改的选择的 id(所以必须保持这个值)。但目前所有的尝试似乎都不起作用。
谢谢 !
我在 0 到 10 之间有多个相同数字的选择。值 1 到 10 必须是唯一的,因此当用户选择已在另一个选择上选择的选项时,我希望另一个切换到 0 值并触发在 db 中调用更新的更改事件。
我已经尝试过一些方法,比如
$("select option[value="+pos+"]").not("#"+id+" option").val(0).change();
其中 pos 是值,id 是用户刚刚更改的选择的 id(所以必须保持这个值)。但目前所有的尝试似乎都不起作用。
谢谢 !
看看这个:http: //jsfiddle.net/8gY5p/5/
<select>
<option value="0">option 0</option>
<option value="1">option 1</option>
<option value="2">option 2</option>
<option value="3">option 3</option>
</select>
<select>
<option value="0">option 0</option>
<option value="1">option 1</option>
<option value="2">option 2</option>
<option value="3">option 3</option>
</select>
<select>
<option value="0">option 0</option>
<option value="1">option 1</option>
<option value="2">option 2</option>
<option value="3">option 3</option>
</select>
$('select').change(function(){
var value = $(this).find(":selected").val();
if(value!=0)
$('select').not(this)
.has("[value=" + value + "]:selected").val(0).change();
});
多亏了 Arun P Johny 的指导,我终于找到了我需要的东西 :)
这是代码
$("select:has(option[value="+pos+"]:selected)").not("#"+id).val(0).change();
您需要将值设置为select
元素,而不是选项
$("select").not("#"+id).has('[value=" + pos + "]:selected').val(0).change();