1

jQuery を使用してフォームを検証したいと考えています。ラジオボタンのグループがあります。

ラジオボタンまたはソリューションの単一のグループに対して複数のソリューションを見つけました。ここでは、どのグループ名があるかを具体的に言う必要があります。

ここのように: jquery でラジオ ボタンを検証しますか?

問題は、実行時にフォームが生成されることです。質問は txt ファイルに保存されます (質問しないでください。これは学校の演習です)。生成された HTML コードは次のようになります。

<p>What&#039;s your gender? 

<input type="radio" name="gender" value="m" />Male 
<input type="radio" name="gender" value="f" />Female 

</p>

<p>

How satisfied are you with out support? 
<input type="radio" name="satisfaction" value="0%" />Not at all 
<input type="radio" name="satisfaction" value="25%" />Not very much 
<input type="radio" name="satisfaction" value="75%" />It was ok 
<input type="radio" name="satisfaction" value="100% />It was very satisfying

</p>

jsファイルはTwigで生成しているので、ラジオボタン群全体をループすることは可能ですが、できれば避けたいです。

4

2 に答える 2

1

最初にすべてのグループを追加する必要があります (ページの読み込みは問題ありませんが、グループ配列がグローバル スコープ内にあることを確認してください)。次に、フォームが送信されたとき/ボタンのクリック時に各グループを個別に検証します。

var groups = [];
$(function() {
    $("input[type=radio][name]").each(function() {
      // Add the unique group name to the array
      groups[$(this).attr("name")] = true;
    });
});
$("button").click(function() {
    $.each(groups, function(i, o) {
      // For each group, check at least one is checked
      var isValid = $("input[name='"+i+"']:checked").length;
      alert(i + ": " + isValid);
    });
});
于 2012-11-05T09:06:55.877 に答える