myr*_*tio 0 javascript forms jquery
我有一组复选框,只想将选中的复选框连接到查询字符串中,但由于某种原因 val() 只返回第一个。jQuery API 文档提到 selects 可以从 .val() 函数返回一个数组,我可以使用原型或 jquery 插件为输入获得相同的行为吗?
这是我的代码:
$('.boxes input:checked');
// [ <input type="checkbox" value="val1">, <input type="checkbox" value="val2">, <input type="checkbox" value="val3"> ]
$('.boxes input:checked').val();
// "val1"
Run Code Online (Sandbox Code Playgroud)
理想情况下,第二个控制台输出将是:
$('.boxes input:checked').val();
// [ "val1", "val2", "val3" ]
Run Code Online (Sandbox Code Playgroud)
val为select具有multiple属性的元素返回选定值的数组,对于其他元素,它返回集合中第一个元素的值。您可以使用以下map方法:
var values = $('.boxes input:checked').map(function() {
return this.value;
}).get();
Run Code Online (Sandbox Code Playgroud)
您还可以定义一个方法:
$.fn.vals = function() {
var first = this.get(0);
if ( this.length === 0 ) return [];
if ( first.tagName === 'SELECT' && first.multiple ) {
return this.val();
}
return this.map(function() { return this.value; }).get();
}
// ...
var values = $('.boxes input:checked').vals();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2254 次 |
| 最近记录: |