使用springform时,如何在ajax/jquery中获取复选框值

how do i get the checkbox value in ajax/jquery when using spring form

本文关键字:jquery 获取 复选框 ajax springform 使用      更新时间:2023-09-26

我有一组由路径deliveryStatus定义的复选框,如下所示

<form:checkbox path="deliveryStatus" value="notDelivered"/>
<form:checkbox path="deliveryStatus" value="delivered"/>

我读了两个例子,它们都是非常好的

示例#1

StackOverflow 中的示例#2

我注意到ID是deliveryStatus 1和deliveryStatus 2,而不是deliveryStatus,因此示例#1中提到的方法不直接适用于我。同样,当使用示例2中提到的解决方案时(考虑到父标记ID为deliveryStatus),我没有得到任何结果。

$('#deliveryStatus').is(":checked");

返回false和

$('#deliveryStatus').val();

给我未定义的

在jquery/ajax中,获取我的表单(deliveryStatus)的选中复选框的正确方法是什么。

我注意到以下代码是在我意识到ID是deliveryStatus 1和deliveryStatus 2 之后工作的

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());
});

如果您只想获得所有已检查的值,无论它们是否已检查,请使用以下方法。

$("input[name='deliveryStatus']").each(function (){
    alert($(this).val());
});

希望这能有所帮助。