Javascript 防止为每个表行选择相同值的多个选项
我有一些像这样的htmlJavascript 防止为每个表行选择相同值的多个选项,javascript,jquery,html,Javascript,Jquery,Html,我有一些像这样的html <table border="1"> <tr> <td> <select id="t00"> <option value="volvo">Volvo</option> <option value="saab">Saab</option> </select> </td&
<table border="1">
<tr>
<td>
<select id="t00">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
</select>
</td>
<td>
<select id="t01">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
</select>
</td>
</tr>
<tr>
<td>
<select id="t10">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
</select>
</td>
<td>
<select id="t20">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
</select>
</td>
</tr>
这是我用PHP命令生成的HTML代码,我已经完成了。
用户使用JQuery或JavaScript选择第一行第一个下拉值,而不是禁用相同的值或隐藏在下一个下拉值中。
我希望在每个表行中验证此下拉元素,而不是allentire表下拉元素
例如:在第一行中,我选择了沃尔沃,然后下一个选择元素沃尔沃被禁用
在第二行中,我选择了相同的值,然后在下一个select元素中它也被禁用
JQuery代码不会影响所有下拉选择元素
我在您提供的链接中使用了相同的代码,但它被上下文扩展到表行:
$("select").change(function()
{
var tr = $(this).closest("tr");
tr.find("select option").attr("disabled",""); //enable everything
//collect the values from selected;
var arr = $.map
(
tr.find("select option:selected"), function(n)
{
return n.value;
}
);
//disable elements
tr.find("select option").filter(function()
{
return $.inArray($(this).val(),arr)>-1; //if value is in the array of selected values
}).attr("disabled","disabled");
});
$.question.changefunction{
$.question option.propdisabled,true;//启用所有功能
//从所选数据中收集值;
var arr=$.map
$。问题选项:选中,函数n{
返回n.value;
}
;
//禁用元素
$.question option.filterfunction{
返回$.inArray$this.val,arr>-1;//如果值在所选值的数组中
}.这是真的;
//重新启用元素
$.question option.filterfunction{
返回$.inArray$this.val,arr==-1;//如果值不在所选值的数组中
}.不正确,错误;
$.question.selectpicker'refresh';
};
您忘记发布您尝试过的JavaScript,但它不起作用。