0

私は以前にこれを尋ねましたが、私のクライアントは質問票に少し機能を作成したいと思っていました。彼は、すべての「メモテキストフィールド」が空の場合は非表示にすることを望んでいます。「Notestext-field」に値がある場合にのみ表示されます。また、値があるか値がない場合は、[はい/いいえ]ラジオボタンも更新/チェックする必要があります。これが「insomniac」が行った以前のコードです。

$('.notes').hide();
$('input[type="radio"]').change(function () {
  if ($(this).val() == "Yes") {
    $(this).closest('tr').next('tr.notes').slideDown();
  } else {
    $(this).closest('tr').next('tr.notes').slideUp();
  }
});

ただし、値がある場合は、最初にテキストフィールドを検証する必要があります(実際には、ここでは1〜33のテキストフィールドが使用され、ほとんどのテキストフィールドに値があります)。

var vals = $('.notes input[type="text"]').val(); 
if(vals == "") {
  console.log('negative');
  $('tr.notes').slideUp();
} else {
  console.log('positive');
  $('.query input[value="Yes"]').attr({
    checked: "checked"
  });
  $('tr.notes').slideDown();
}

これが私が議論しているものの元の形式です... jQueryバインドまたはインデックスフォームInsomniacデモ

4

3 に答える 3

1

の長さを確認し、.html()それに応じてビューから削除する必要があります。

if ($(element).html().length == 0)
    $(element).hide();

ドキュメントの読み込み時にメモが静的に読み込まれる場合は、次のようにする必要があります。

$('.notes').each(function(){
    if ($(this).html().length == 0)
        $(this).hide();
});

それ以外の場合、動的にロードする場合は、ロードしたら、最初のコードを使用して空であることを確認します。

于 2013-01-25T03:05:11.253 に答える
1

//フォーカスを入力に設定します。そうすれば、blurイベントで何が入力されたかをチェックできます。

        $('.notes').hide();

        $('input[type="radio"]').change(function () {
            if ($(this).val() == "Yes") {
                 $(this).closest('tr').next('tr.notes').slideDown(); 
                $(this).closest('tr').next('tr.notes').find('input').focus();                                
             } else {
                 $(this).closest('tr').next('tr.notes').slideUp();
             }
      });

//すべての入力に関連付けられたblurイベント

      $('input').blur(function(){
      if ($(this).val().length == 0){       
    $(this).closest('tr.notes').slideUp();
      }
     });

//フィドルを更新しました

于 2013-01-25T04:25:59.847 に答える
0

いくつかの調査とスクリプトのノンストップ作業の後。私はついにコードを基本設定に更新することにしました。「私はプログラマーではありません」実際には...

$(".report-notes fieldset").each(function (i) {
i = i+1;
$(this).addClass("item"+i);
$('.item'+i+' input[type="radio"]').on('change',function(){
    if($(this).val() == 'Yes') {
        $('.item'+i+' .notes').slideDown();
    } else {
        $('.item'+i+' .notes').slideUp();
    }
});

$(document).ready(function(){
    var notes = $('.item'+i+' .notes input[type="text"]').val();
    if(notes === '') {
        console.log('walang laman');
        $('.item'+i+' .notes').hide();
    } else {
        console.log('meron laman');
        $('.item'+i).find('input[value="Yes"]').attr({
            checked: "checked"
        });
        $('.item'+i+' .notes').slideDown();
    }
});
});

更新されたフィドルソース

于 2013-01-25T08:11:48.393 に答える