这些是复选框
<label><input type="checkbox" class="category" name="selector[]" value="114" id="category_id" >Mouse</label>
<label><input type="checkbox" value="89,809,watches" name="selector[]" class="category" id="category_id" >Watches</label>
<label><input type="checkbox" class="category" name="selector[]" value="809" id="category_id" >Men</label>
<label><input type="checkbox" class="category" name="selector[]" value="89" id="category_id" >Women</label>
这是我为从复选框获取值而编写的函数。
$('.category').click(function() {
var val = [];
jQuery(':checkbox:checked').each(function(i){
val[i] = jQuery(this).val();
});
});
这里,如果有人选择男性(809)或女性(89)而没有点击手表(89809,手表),那么我需要从数组val 中删除相应的值
ie有人选择men
,然后选择val=array('809');
,但如果有人选择没有手表的人,则其值必须为空。如果有人选择鼠标和人,则val必须是val=数组('114');
我尝试了这个代码进行检查,但不起作用
if((.inArray(val, 89))||(.inArray(val, 809)) && (!(.inArray(val, '89,809,watches')))){
alert('watch not selected ');
}
以及如何从数组中移除值?
if(($.inArray(89, val)>-1)||($.inArray(809,val)>-1) && (($.inArray('89,809,watches', val)==-1))){
alert('watch not selected ');
}
很遗憾,你知道该读哪一页手册,但你没有读…
- 您需要传递在第一个参数中搜索的值,以及在第二个参数中查找的数组
- 它返回索引,如果未找到,则返回-1
这个答案是有效的。但我不确定情况是否正确。
$('.category').click(function() {
var val = [];
jQuery(':checkbox:checked').each(function(i){
selected = jQuery(this).val();
if( (selected == '89' || selected == '809') && !( $.inArray('89,809,watches', val) != -1 ) )
return true;
else
val.push( selected );
}).get();
console.log(val);
$('#arrayVal').text( 'Array String: "' + val.toString() + '"' )
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label><input type="checkbox" class="category" name="selector[]" value="114" id="category_id" >Mouse</label>
<label><input type="checkbox" value="89,809,watches" name="selector[]" class="category" id="category_id" >Watches</label>
<label><input type="checkbox" class="category" name="selector[]" value="809" id="category_id" >Men</label>
<label><input type="checkbox" class="category" name="selector[]" value="89" id="category_id" >Women</label>
<div id="arrayVal"></div>