0

ユーザーが特定のラジオ ボタンをクリックしたときに非表示にするページのセクションがあります。しかし、領域を非表示にすることに加えて、その領域のすべての入力を無効にしたい. また、ユーザーが別のボタンを押したときに領域を元に戻したいと考えています。

これを行う最善の方法は何ですか?

4

3 に答える 3

7

以下のようなものを試すことができます:

$('#make_hide_button').on('click', function() {
  $('#target_area').hide().find('input, textarea').prop('disabled', true);
});

$('#make_show_button').on('click', function() {
  $('#target_area').show().find('input, textarea').prop('disabled', false);
});
于 2012-08-14T17:54:02.550 に答える
4

使用している現在のコードが指定されていないため、いくつかの一般的なガイドラインしか提供できません。

jQuery hide()を見てください:

$("#myDivId").hide();

on()を使用してクリック イベントをバインドする方法を確認する

$("#MyRadioButton").on("click", function(){
    $("#myDivId").hide();
});

$("#MyOtherButton").on("click", function(){
    $("#myDivId").show();
});

要素を無効/有効にするには:

$("#MyElementId").prop("disabled", false);

$("#MyElementId").prop("disabled", true);

繰り返しますが、これは開始するためのものであり、問​​題が発生したコードがある場合は、お気軽に投稿してください。私たちはあなたを助けることができると確信しています.

于 2012-08-14T17:54:23.527 に答える
0

質問にコードを追加することは、回答にコードを含めることと確実に強い関係があります。

そうは言っても、一般的なアプローチは、入力がどの領域にあったかを確実に把握することです。おそらく、data-属性または id の JavaScript 配列を使用するか、クラス名を使用します。

領域が適切に定義されたら、ラジオ ボタンを非表示にしてから、定義された領域を反復処理して、入力タイプの要素を無効にすることができます。

編集

仮定:

  • ラジオボタンがクリックされた場合にフォーム全体を無効にしたい:
  • ラジオボタンのIDは「radButt」です

    <script type="text/javascript">
     function GetParentForm(elem) {
        while (elem && elem.nodeName && elem.nodeName.toUpperCase() != "FORM") {
            elem = elem.parentNode;
        }
        return elem;
     }
    
     var changeState = 0;
     $("#radButt").click( function() {
       $(this).hide();
       var thisForm = GetParentForm( $(this)[0] );
       $(thisForm).find('input').prop('disabled', true);
     });
    </script>
    
  • 于 2012-08-14T17:54:16.620 に答える