Moh*_*han 3 javascript checkbox jquery partial-views asp.net-mvc-4
我使用数组作为复选框值,如果我点击复选框它获取值,如果我取消选中此复选框它删除它的值而不保存在数组中,这是我的代码..
function selectUser(sender) {
if (sender.prop('checked'),true)
assignedTo[assignedTo.length] = sender.id;
else {
for (var i = 0; i < assignedTo.length; i++) {
if (sender.id == assignedTo[i]) {
assignedTo.splice(i, 1);
break;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我的问题是如果选中它会保存值,如果我取消选中它没有从数组中删除值,任何帮助
为什么不清除数组并用新值存储它
var values=[];
$(".cbx").click(function(){
values=[];
$(".cbx").each(function(){
if($(this).is(":checked"))
values.push($(this).val());
});
alert(values);
});
Run Code Online (Sandbox Code Playgroud)
或者
var values=[];
$(".cbx").change(function(){
if($(this).is(":checked"))
values.push($(this).val());
else{
var x = values.indexOf($(this).val());
values.splice(x,1);
}
alert(values);
});
Run Code Online (Sandbox Code Playgroud)
你采取的方法可能非常繁琐.您可以使用.map()每次选中或取消选中复选框时重新评估数组,如下所示:
$(':checkbox[name=test]').on('change', function() {
var assignedTo = $(':checkbox[name=test]:checked').map(function() {
return this.id;
})
.get();
//Out for DEMO purposes only
$('pre.out').text( JSON.stringify( assignedTo ) );
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="checkbox" name="test" value="1" id="c1"/> 1 <br/>
<input type="checkbox" name="test" value="2" id="c2"/> 2 <br/>
<input type="checkbox" name="test" value="3" id="c3"/> 3 <br/>
<input type="checkbox" name="test" value="4" id="c4"/> 4 <br/>
<input type="checkbox" name="test" value="5" id="c5"/> 5 <br/>
<input type="checkbox" name="test" value="6" id="c6"/> 6 <br/>
<input type="checkbox" name="test" value="7" id="c7"/> 7 <br/>
<!--output area for DEMO purposes only -->
<pre class="out"></pre>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6625 次 |
| 最近记录: |