2

これをフォームで使用して、ラジオ ボタン グループに特定の値 (はい/いいえ) があるかどうかを確認しています。これらのいずれかの HTML は次のとおりです。

<form id="registerHere">
<div class="control-group">
<label class="radio">
    <input type="radio" value="Yes" name="freemedia">
    Yes
    </label>
    <label class="radio">
    <input type="radio" value="No" name="freemedia" checked="checked">
    No
    </label>
</div></form>

そして、私は次のJSを使用しています(jQuery.validate.jsが含まれています):

<script type="text/javascript">
  $(document).ready(function(){});
$("#registerHere").validate({
            rules:{
                freemedia:{
                        required:true,
                        equalTo: "Yes"
                    },
                  },
            messages:{
                freemedia:{
                    required:"Please select",
                    equalTo:"Please apply to the 'freemedia' group first.</a>"
                },
                    },
        });
    });
  </script>

ただし、「はい」または「いいえ」がチェックされているかどうかに関係なく、常にメッセージが表示されるため、値を正しくチェックしていません。

どこが間違っていますか?

4

3 に答える 3

5

jquery の一部をクリーンアップしましたが、いくつかのエラーがありました。

また、プラグインを調べてみると、「equalTo」パラメーターを使用して必要なコントロールを指定できることがわかりました。クエリのセレクターとして「equalTo」を使用するだけです。したがって、「equalTo」設定を jquery セレクターとして扱うと、機能するはずです。少しハックかもしれませんが、私はそれを機能させました。

あなたがする必要があるのは、ラジオボタンにIDを割り当てることだけです。

<div class="control-group">
        <label class="radio">
            <input id="chkYes" type="radio" value="Yes" name="freemedia" />
            Yes
        </label>
        <label id="chkNo" class="radio">
            <input type="radio" value="No" name="freemedia" />
            No
        </label>
        <input type="submit" value="Submit" />
    </div>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#registerHere").validate({
                rules:
                {
                    freemedia:
                    {
                        required: true,
                        equalTo: "#chkYes"
                    }
                },
                messages:
                {
                    freemedia:
                    {
                        required: "Please select",
                        equalTo: "Please apply to the 'freemedia' group first."
                    }
                }
            });
        });
    </script>
于 2012-12-08T07:12:56.077 に答える
0

フォーム送信時に選択した値を確認したい場合は、これを行うのが良い方法です。事前定義された選択済みラジオボタンを指定し、フォーム送信時に選択したラジオを確認します。

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<input type="radio" name="sex" value="Male" checked>Male</input>
<input type="radio" name="sex" value="Female">Female</input>
<input type="radio" name="sex" value="Unknown" >Unknown</input>

<div onclick="CheckMe();"> check Selected Radio button</div>
</body>
<script>
function CheckMe()
{
alert("value selected "+$('input:radio[name=sex]:checked').val());
}
</script>
</html>

ここで、デフォルトでラジオボタンを選択していないとすると、ユーザーがラジオボタンを選択したかどうか、選択した場合はそれが何であるかを確認できます。次のコードはそれを行うのに役立ちます

<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<input type="radio" name="sex" value="Male">Male</input>
<input type="radio" name="sex" value="Female">Female</input>
<input type="radio" name="sex" value="Unknown">Unknown</input>

<div onclick="CheckMe();"> check Selected Radio button</div>
</body>
<script>
function CheckMe()
{
if ($('input:radio[name=sex]:checked').val())
alert("value selected "+ $('input:radio[name=sex]:checked').val());
else
alert("Please select Radio button");
}
</script>
</html>

楽しみ..!

于 2012-12-08T06:36:57.803 に答える
0

jqueryバリデーションプラグインでは、「equalTo」は同じフィールドではなく、フィールド間の値を比較するために使用され
ます。

$.validator.addMethod("check_for_yes", function(value, element) {
  return $('.freemedia').val() != "Yes"
}, "* Please apply to the 'freemedia' group first.");  

検証 -

rules : {
 freemedia : {
     check_for_yes: true
 }
}

また

アラートを表示することで、ラジオボタンのJqueryクリックイベントで確認できます。

于 2012-12-08T06:23:05.513 に答える