0

ユーザーがプロファイル情報を編集できる編集可能なフォームを作成しました。このフォームは保存して再表示できるため、ユーザーの操作に合わせて更新を保存できる必要があります。これは正常に動作しています。

フォームは非常に長いため、一部のセクションでは、前の入力に対する yes または no の選択に応じて、jquery を使用して表示/非表示にするフィールドがあります。これは、ラジオ入力が選択され、フォームが再表示されたときに保存された場合、jquery が詳細フィールドを再び非表示にすることを除いて機能します。

したがって、次のjqueryコードを修正して、どちらのラジオボタンも選択されていない場合は詳細divが非表示になりますが、[はい]オプションを選択して保存すると、フォームが再表示されたときに自動的に開きます! ありがとう

$("#diet-details").hide();
$("input[name=diet]").click(function() {
    if ( $("#diet1").attr('checked'))
        $("#diet-details").hide();

    if ( $("#diet2").attr('checked'))
        $("#diet-details").show();
});      
4

3 に答える 3

1

表示/非表示条件をトグル関数に渡すことができます。最初にdiet-detailsdivを常に非表示にする代わりに、diet1オプションがオンになっているかどうかを確認し、それに基づいて表示(または非表示)します。

$(function() {
  $('#diet-details').toggle($("#diet1").is(':checked'));

  $("input[name=diet]").click(function() {
    $('#diet-details').toggle($("#diet1").is(':checked'));
  }); 
});
于 2013-01-10T16:24:02.050 に答える
0

初期状態を設定する別の方法:

function checkem() {
  if ($("#diet1").prop('checked')) $("#diet-details").hide();
  if ($("#diet2").prop('checked')) $("#diet-details").show();
}
$("input[name=diet]").click(function () {
  checkem();
});
checkem(); //sets initial state based one current

テストフィドル: http: //jsfiddle.net/YqUhZ/

NEITHERがチェックされているかどうかを表示したい場合は、次のようにします。

function checkem() {
  if ($("input[name=diet]:checked").length) {
    $("#diet-details").hide();
  } else {
    $("#diet-details").show();
  }
}
$("input[name=diet]").change(function () {
  checkem();
});
checkem(); //sets initial state based one current
于 2013-01-10T16:29:08.587 に答える
0

それを行う方法は次のとおりです。

(function(){
    var $d1 = $("#diet1"),
        $d2 = $("#diet2"),
        $details = $("#diet-details");

    !$d2.prop('checked') && $details.hide();

    $("input[name=diet]").click(function() {
        $d1.prop('checked') && $details.hide();
        $d2.prop('checked') && $details.show();
    });
})();  
于 2013-01-10T16:25:30.163 に答える