0

私が得ることができるすべての助けに感謝します!

Happy.jsを使用してクライアント側でフォームを検証しています

検証したい最初の入力は、はい/いいえのラジオボタンです。この入力の ID は、2 つの div を非表示/表示する JavaScript 関数に関連付けられているため、id を happy.js と同じになるように変更することはできません。

<input id="id_radio1" type="radio" name="name_radio1" value="Yes" aria-required="true" required/><label for ="id_radio1">Yes</label>
<input id="id_radio2" type="radio" name="name_radio2" value="No" aria-required="true" required//><label for ="id_radio2">No</label>

私の happy.js スクリプトは次のとおりです。最初のフィールド #id_radio1 は問題のコードです。

   <script>
      $(document).ready(function () {
        $('#awesomeForm').isHappy({
          fields: {
            // reference the field you're talking about, probably by `id`
            // but you could certainly do $('[name=name]') as well.
            '#id_radio1': {
              required: true,
              message: 'Please specify Gas Spring Type'
            },      
            '#qnty': {
              required: true,
              message: 'Please specify # of Units'
            },
            '#street': {
              required: true,
              message: 'Please enter your Street',
            },
             '#city': {
              required: true,
              message: 'Please enter your City',
             },
             '#state': {
              required: true,
              message: 'Please enter your State/Province',
            },
             '#country': {
              required: true,
              message: 'Please enter your Country',
            },
             '#zip': {
              required: true,
              message: 'Please enter your Zip/Postal Code',
            },
             '#email': {
              required: true,
              message: 'Please enter a valid Email Address',
              test: happy.email // this can be *any* function that returns true or false
            },
          }
        });
      }); 
    </script>

ご協力ありがとうございました。

参考までに、これは DIV スイッチのスクリプトです。

<script language="javascript">
$(document).ready(function () {
         $('#div1,#div2').hide();
                    $('#id_radio1').click(function () {
                       $('#div2').hide('fast');
                       $('#div1').show('fast');
                });
                $('#id_radio2').click(function () {
                      $('#div1').hide('fast');
                      $('#div2').show('fast');
                 });
});</script>
4

2 に答える 2

1

ラジオ ボタンを検証し、入力名を使用してそれらを参照するには、カスタム関数を追加する必要があります。このようなものが動作するはずです:

$('#awesomeForm').isHappy({
      fields: {
          'input[name=name_radio1]':{
              required: 'sometimes',
              message: 'Please select a value',
              test: function(){ 
                  return $('input[name=name_radio1]').is(':checked');
              },
          }
      }
});
于 2013-08-14T02:09:21.440 に答える
0

名前は両方のラジオ ボタンで同じにする必要があります。ID は決して同じにすることはできません。

于 2013-08-13T20:26:16.193 に答える