大佬教程收集整理的这篇文章主要介绍了jQuery:将复选框的值作为数组返回?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_673_7@<SELEct id="countries" class="multiSELEct" multiple="multiple" name="countries[]"> <option value="AFG">Afghanistan</option> <etc> ... $countries_input = $("#countries"); var countries = $countries_input.val(); $.ajax({ data: { country : countries,... },... });
但我找不到任何等效的方法来获取具有多个选择的复选框的值.明显的东西不起作用:
@H_673_7@<input type="checkBox" name="check[]" value="foo1"/>foo1<br/> <input type="checkBox" name="check[]" value="foo2"/>foo2<br/> ... var bar = $('input:checkBox[name=check]').val(); // undefined var bar = $('input:checkBox[name=check[]]').val(); // also undefined var bar = $('input:checkBox[name=check]:checked').val(); // also undefined
有任何想法吗?谢谢.
@H_673_7@var vals = [] $('input:checkBox[name="check[]"]').each(function() { vals.push(this.value); });
或者,如果您只想要检查的那些:
@H_673_7@var vals = [] $('input:checkBox[name="check[]"]').each(function() { if (this.checked) { vals.push(this.value); } });
或者您可以使用map并获取:
@H_673_7@var vals = $('input:checkBox[name="check[]"]').map(function() { return this.value; }).get();
或者,如果您只想要检查的那些:
@H_673_7@var vals = $('input:checkBox[name="check[]"]').map(function() { return this.checked ? this.value : undefined; }).get();
旁注1:jQuery要求属性值选择器中的值(上面的那种)总是在引号中,尽管在撰写本文时尽管记录它仍然松懈.这是一个jQuery的东西,但在这种情况下你也需要CSS(CSS2 Reference | CSS3 Reference),因为你的值包括[],这对CSS中没有引号的值无效. (在CSS中,没有引号,值必须为identifiers.)
旁注2:注意我在上面的迭代器函数中使用this.value来获取输入的值,而不是$(this).val().它几乎只是一种风格的东西,从各个方面来看都不比另一种更好. this.value更直接,如果你完全了解DOM(每个网络程序员都应该),那就非常清楚了.但是,当然,虽然完全可靠的跨浏览器与复选框和大多数其他输入元素,它不是可靠的跨浏览器与一些其他表单字段(例如,选择框). $(this).val()在jQuery密集型应用程序中更惯用,您不必担心这是输入还是选择.是的,它增加了开销,但如果你没有数千个,那就不重要了.
以上是大佬教程为你收集整理的jQuery:将复选框的值作为数组返回?全部内容,希望文章能够帮你解决jQuery:将复选框的值作为数组返回?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。