我有5个同名的列表框。如果我在列表框中选择相同的元素,则会返回错误消息,因为此值已被选中。如何在javascript或jquery中实现它
<table width="50%" border="0">
<tr>
<td><select id="prev" name="prev[0][]" >
<option value="test">test</option>
<option value="test1">test</option>
<option value="test2">test</option>
<option value="test3">test</option>
<option value="test4">test</option>
</select>
</td>
</tr>
<tr>
<td><select id="prev" name="prev[0][]" >
<option value="test">test</option>
<option value="test1">test</option>
<option value="test2">test</option>
<option value="test3">test</option>
<option value="test4">test</option>
</select>
</td>
</tr>
<tr>
<td><select id="prev" name="prev[0][]" >
<option value="test">test</option>
<option value="test1">test</option>
<option value="test2">test</option>
<option value="test3">test</option>
<option value="test4">test</option>
</select>
</td>
</tr>
<tr>
<td><select id="prev" name="prev[0][]" >
<option value="test">test</option>
<option value="test1">test</option>
<option value="test2">test</option>
<option value="test3">test</option>
<option value="test4">test</option>
</select>
</td>
</tr>
<tr>
<td><select id="prev" name="prev[0][]" >
<option value="test">test</option>
<option value="test1">test</option>
<option value="test2">test</option>
<option value="test3">test</option>
<option value="test4">test</option>
</select>
</td>
</tr>
</table>
用于检查列表框的查询功能是否为:
$("select[name^='prev["+k+"']").each(function( i ) {
lsval = this.value;
if(lsval == '') {
alert("enter value");
$("select[name^='prev["+k+"']").eq(i).focus();
return false;
}
});
我有选项(test,test1,test2,test3,test4) 如果我在多个列表框中选择相同的值,则它会将警报消息返回为('此值已被选中')。
如何实现这一点。请只做那些需要的。感谢
答案 0 :(得分:1)
希望这可以帮到你,但我个人认为每次选择的警报都很烦人 HTML PART
<table width="50%" border="0">
<tr>
<td><select class="prev" name="prev[0][]" >
<option value="test">test</option>
<option value="test1">test 1</option>
<option value="test2">test 2</option>
<option value="test3">test 3</option>
<option value="test4">test 4</option>
</select>
</td>
</tr>
<tr>
<td><select class="prev" name="prev[0][]" >
<option value="test">test</option>
<option value="test1">test 1</option>
<option value="test2">test 2</option>
<option value="test3">test 3</option>
<option value="test4">test 4</option>
</select>
</td>
</tr>
<tr>
<td><select class="prev" name="prev[0][]" >
<option value="test">test</option>
<option value="test1">test 1</option>
<option value="test2">test 2</option>
<option value="test3">test 3</option>
<option value="test4">test 4</option>
</select>
</td>
</tr>
<tr>
<td><select class="prev" name="prev[0][]" >
<option value="test">test</option>
<option value="test1">test 1</option>
<option value="test2">test 2</option>
<option value="test3">test 3</option>
<option value="test4">test 4</option>
</select>
</td>
</tr>
<tr>
<td><select class="prev" name="prev[0][]" >
<option value="test">test</option>
<option value="test1">test 1</option>
<option value="test2">test 2</option>
<option value="test3">test 3</option>
<option value="test4">test 4</option>
</select>
</td>
</tr>
</table>
JQUERY PART
$(function(){
var PrevArray = [];
$('.prev').live("click",function(){
var selected = $(this).val();
if($.inArray(selected,PrevArray) !== -1)
{
alert('Already Selected');
}
else
{
PrevArray.push(selected);
console.log(PrevArray);
}
});
});
答案 1 :(得分:0)
HTML元素不应多次使用名称和ID。
我不确定您是如何存储表单收集的数据,但您可以将代码更改为:
<select id="prev-1" name="prev-1" ></select>
<select id="prev-2" name="prev-2" ></select>
<select id="prev-3" name="prev-3" ></select>
答案 2 :(得分:0)
你也应该使用select class =&#34;&#34;而不是id标记,因为id标记仅用于1次使用,而class标记用于多次使用