0

ラジオに基づいて非表示/表示されるフィールドがあります。

そのため、ページをロードしている間、ラジオの値に基づいて非表示にします

    $(document).ready(function() {

        if(edit) {
          populateData();
        }

        $(radio).change(function(){
            //here also we show hide text box based on radio value
        })

        function PopulateData() {
            //This does select radio and based on same show / hide text field
        }

       $("myForm").validate(); // attaching validate . At this point field could be hidden or visible


       $(savebutton).click(function(){

         /*This does not validate text 
          field (visibleBasedOnRadio) which was hidden and made visible by either of above */

          if( $("myForm").valid() == false) {
              return false;
          }
       });
    });

<form id="myForm">
<radio>
  <option 1>
  <option 2>
</radio>

<input type="text" id="visibleBasedOnRadio" class="required" style="display:none"/>
</form>
4

1 に答える 1

0

プレゼンテーションロジックにどのフレームワークを使用しているかわかりません。私はできる限り一般的になるように努めます。

フォームに2つの変数を追加しましょう。

  1. radioButtonValue-選択したラジオボタンの値を保持します。たとえば、option1またはoption2などです。このフィールドにデフォルト値を設定して、ページの読み込み時に特定のオプションがデフォルトで選択されるようにすることができます。
  2. valueOfTheVisibleField-このフィールドは、ラジオボタンが選択されると表示される入力テキストボックスの値を保持します。

    <form>
      <input type="radio" name="radioButtonValue" value="option1"> Option 1<br> //This is checked.
      <input type="radio" name="radioButtonValue" value="option2"> Option 2<br>
      <input type="text" id="visibleBasedOnRadio" class="required" name="valueOfTheVisibleField" style="display:none"/>
    </form>
    

次に、検証で最初にラジオボタンの値を確認します。その値がoption2の場合、つまり必須フィールドが表示されている場合のみ...テキストボックスの値が存在するかどうかを確認します。表示されていないため、valueOfTheVisibleFieldフィールドに関連することは何もしません。

于 2012-11-01T18:38:22.190 に答える