0

我有这样的豆子:

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>

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

到目前为止我尝试的是:

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

它也一样

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

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

4

3 回答 3

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 就可以了。

于 2013-11-26T16:58:29.163 回答
0

您使用的是什么版本的 JQuery 以及在什么浏览器中?仅供参考 - 您的问题似乎与 JQuery 以及已经呈现给浏览器的内容完全隔离,因此您可能希望取消与 spring 相关的标签。

尝试像这样进行更改: $("input[value='Female']").prop('checked',true);

<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>
于 2013-11-26T17:02:20.523 回答
0

gender不是类,但您使用的是 jQuery 类选择器。

试试这个:

$("input[name='gender'][value='Female']").prop('checked', true);
于 2013-11-26T16:49:13.637 回答