使用 spring 表单时如何获取 ajax/jquery 中的复选框值
how do i get the checkbox value in ajax/jquery when using spring form
我有一组由路径 deliveryStatus 定义的复选框,如下所示
<form:checkbox path="deliveryStatus" value="notDelivered"/>
<form:checkbox path="deliveryStatus" value="delivered"/>
我读了两个非常好的例子
我注意到 ID 是 deliveryStatus1 和 deliveryStatus2 而不是 deliveryStatus,因此示例 #1 中提到的方法对我不直接起作用。此外,当使用示例 #2 中提到的解决方案时(考虑父标签 ID 为 deliveryStatus),我没有得到任何结果。
$('#deliveryStatus').is(":checked");
returns 错误和
$('#deliveryStatus').val();
给我未定义
在 jquery/ajax 中为我的表单(deliveryStatus)获取 selected/checked 复选框的正确方法是什么。
在我意识到 ID 为 deliveryStatus1 和 deliveryStatus2 后,我注意到下面的代码有效
var deliverystatus = $('#deliveryStatus1').val();
alert( 'deliverystatus' );
deliverystatus = $('#deliveryStatus1').is(":checked");
alert( deliverystatus );
deliverystatus = $('#deliveryStatus2').is(":checked");
alert( deliverystatus );
但不认为这是获得选中选项的正确方法。
原因是有多个复选框。
阅读示例 #1 我正在考虑应该有更好的方法来读取具有相同路径值的多个复选框
问题更新
像下面这样显式添加 ID
<form:checkbox path="deliveryStatus" id="deliveryStatus" value="notDelivered"/>
<form:checkbox path="deliveryStatus" id="deliveryStatus" value="delivered"/>
允许我通过
获得价值
$('#deliveryStatus:checked').val();
只有选择一个才有效。因此当有多项选择时可能不是很正确
当您有多个具有相同路径变量的复选框时,它们将以相同的名称呈现,如下所示。
<form:checkbox path="deliveryStatus" value="notDelivered"/>
<form:checkbox path="deliveryStatus" value="delivered"/>
将呈现为
<input id="deliveryStatus1" name="deliveryStatus" type="checkbox" value="notDelivered"/>
<input id="deliveryStatus2" name="deliveryStatus" type="checkbox" value="delivered"/>
您可以使用以下方法获取选中的复选框的值。
$("input[name='deliveryStatus']:checked").each(function (){
alert($(this).val());
});
如果只想获取所有checked的值,不管有没有checked,使用下面的。
$("input[name='deliveryStatus']").each(function (){
alert($(this).val());
});
希望这对您有所帮助。
我有一组由路径 deliveryStatus 定义的复选框,如下所示
<form:checkbox path="deliveryStatus" value="notDelivered"/>
<form:checkbox path="deliveryStatus" value="delivered"/>
我读了两个非常好的例子
我注意到 ID 是 deliveryStatus1 和 deliveryStatus2 而不是 deliveryStatus,因此示例 #1 中提到的方法对我不直接起作用。此外,当使用示例 #2 中提到的解决方案时(考虑父标签 ID 为 deliveryStatus),我没有得到任何结果。
$('#deliveryStatus').is(":checked");
returns 错误和
$('#deliveryStatus').val();
给我未定义
在 jquery/ajax 中为我的表单(deliveryStatus)获取 selected/checked 复选框的正确方法是什么。
在我意识到 ID 为 deliveryStatus1 和 deliveryStatus2 后,我注意到下面的代码有效
var deliverystatus = $('#deliveryStatus1').val();
alert( 'deliverystatus' );
deliverystatus = $('#deliveryStatus1').is(":checked");
alert( deliverystatus );
deliverystatus = $('#deliveryStatus2').is(":checked");
alert( deliverystatus );
但不认为这是获得选中选项的正确方法。 原因是有多个复选框。
阅读示例 #1 我正在考虑应该有更好的方法来读取具有相同路径值的多个复选框
问题更新
像下面这样显式添加 ID
<form:checkbox path="deliveryStatus" id="deliveryStatus" value="notDelivered"/>
<form:checkbox path="deliveryStatus" id="deliveryStatus" value="delivered"/>
允许我通过
获得价值$('#deliveryStatus:checked').val();
只有选择一个才有效。因此当有多项选择时可能不是很正确
当您有多个具有相同路径变量的复选框时,它们将以相同的名称呈现,如下所示。
<form:checkbox path="deliveryStatus" value="notDelivered"/>
<form:checkbox path="deliveryStatus" value="delivered"/>
将呈现为
<input id="deliveryStatus1" name="deliveryStatus" type="checkbox" value="notDelivered"/>
<input id="deliveryStatus2" name="deliveryStatus" type="checkbox" value="delivered"/>
您可以使用以下方法获取选中的复选框的值。
$("input[name='deliveryStatus']:checked").each(function (){
alert($(this).val());
});
如果只想获取所有checked的值,不管有没有checked,使用下面的。
$("input[name='deliveryStatus']").each(function (){
alert($(this).val());
});
希望这对您有所帮助。