使用弹簧形式,改变单选按钮的值

时间:2013-11-26 16:11:29

标签: java jquery spring spring-mvc spring-form

我有这样的bean:

class StudentBean
{
    ...
    private String gender = "Male";
    ...
    // setters and getters here
}

Spring表单是这样的:

<!-- Gender -->
<form:form action="url" method="POST" modelAttribute="studentBean">
     <form:radiobutton path="gender" id="male" value="Male" required="required" style="float:left;" checked="checked"/> 
     <form:radiobutton path="gender" id="female" value="Female" required="required" style="float:left;"/>
...
</form:form>

默认情况下,性别单选按钮设置为男性,我想使用jQuery更改它。

到目前为止我尝试的是:

$('.gender[value="'+ beanList[index].myGender +'"]').prop('checked', true);

它也与

相同

$('.gender[value="Female"]').prop('checked', true);

但不会更改单选按钮。我做错了什么?

3 个答案:

答案 0 :(得分:0)

gender不是类,但是你正在使用jQuery类选择器。

请改为尝试:

$("input[name='gender'][value='Female']").prop('checked', true);

答案 1 :(得分:0)

您选择性别(。前缀为类)的内容,而性别是HTML中的ID。您可以更改选择器以定位ID性别

($('#gender[value="Female"]').prop('checked', true);)

或者您可以像这样在HTML中添加类:

<!-- Gender -->
<form:form action="url" method="POST" modelAttribute="studentBean">
<form:radiobutton path="gender" class="male" value="Male" required="required" style="float:left;" checked="checked"/> 
<form:radiobutton path="gender" class="female" value="Female" required="required" style="float:left;"/>
...
</form:form>

正确的解决方案取决于元素在页面上显示的次数。多个元素可以具有相同的类,但页面上只有一个元素可以具有任何ID。如果您要拥有此表单的多个副本,因此需要多个性别单选按钮,则将ID更改为类。如果此表单只出现一次,那么ID就可以了。

答案 2 :(得分:0)

您使用的是什么版本的JQuery以及在什么浏览器中?仅供参考 - 您的问题似乎与JQuery完全隔离,并且已经向浏览器呈现了什么,因此您可能想要取消与弹簧相关的标签。

尝试进行如下更改: $( “输入[值= '女']”)丙( '检查',真);

<html>
<head>
<script src="jquery-1.9.1.js"></script>
</head>

<body>

<form>
  <input type="radio" path="gender" id="Male" name="sex" value="Male" checked="checked" />Male
  <br />
  <input type="radio" path="gender" id="Female" name="sex" value="Female" />Female
  <div id="test">my test</div>
</form>

<script>
alert("hello");
$("input[value='Female']").prop('checked',true);
alert("bye");
</script>

</body>
</html>