【问题标题】:Form using spring, change value of radio button使用弹簧形成,更改单选按钮的值
【发布时间】:2013-11-26 16:11:28
【问题描述】:

我有这样的豆子:

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

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

【问题讨论】:

  • 你不应该把它改成"checked"而不是true吗?
  • @SotiriosDelimanolis 这不是用于attr() 吗?
  • gender 不是类,但您使用的是 jQuery 类选择器。

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


【解决方案1】:

您使用的是什么版本的 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>

【讨论】:

    【解决方案2】:

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

    试试这个:

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

    【讨论】:

      【解决方案3】:

      您正在选择具有性别 class 的事物(. 前缀是类),而性别是 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 就可以了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-18
        • 2021-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-29
        • 2014-07-08
        • 2012-11-01
        相关资源
        最近更新 更多