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 を持つことができるのはページ上の 1 つの要素だけです。このフォームの複数のコピー、つまり複数の性別ラジオ ボタンを作成する場合は、ID をクラスに変更します。このフォームが 1 回だけ表示される場合は、ID で問題ありません。

于 2013-11-26T16:58:29.163 に答える
0

genderはクラスではありませんが、jQuery クラス セレクターを使用しています。

代わりにこれを試してください:

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