0

我之前确实问过这个问题,但我的客户想在问卷上创建一些功能。他希望所有“Notes 文本字段”为空时都将被隐藏。仅当“注释文本字段”具有值时才可见。如果有值或没有值,也需要更新/检查是/否单选按钮。这是“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 Bind or Index Form and Insomniac Demo

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

//将焦点设置为输入,这样我们就可以在模糊事件中检查输入的任何内容。

        $('.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();
             }
      });

//模糊事件绑定到所有输入

      $('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 回答