ユーザーが特定のラジオ ボタンをクリックしたときに非表示にするページのセクションがあります。しかし、領域を非表示にすることに加えて、その領域のすべての入力を無効にしたい. また、ユーザーが別のボタンを押したときに領域を元に戻したいと考えています。
これを行う最善の方法は何ですか?
ユーザーが特定のラジオ ボタンをクリックしたときに非表示にするページのセクションがあります。しかし、領域を非表示にすることに加えて、その領域のすべての入力を無効にしたい. また、ユーザーが別のボタンを押したときに領域を元に戻したいと考えています。
これを行う最善の方法は何ですか?
以下のようなものを試すことができます:
$('#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);
});
使用している現在のコードが指定されていないため、いくつかの一般的なガイドラインしか提供できません。
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);
繰り返しますが、これは開始するためのものであり、問題が発生したコードがある場合は、お気軽に投稿してください。私たちはあなたを助けることができると確信しています.
質問にコードを追加することは、回答にコードを含めることと確実に強い関係があります。
そうは言っても、一般的なアプローチは、入力がどの領域にあったかを確実に把握することです。おそらく、data-
属性または id の JavaScript 配列を使用するか、クラス名を使用します。
領域が適切に定義されたら、ラジオ ボタンを非表示にしてから、定義された領域を反復処理して、入力タイプの要素を無効にすることができます。
編集
仮定:
<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>