2012-12-20 64 views
2

我有文本输入并用于选择是/否单选按钮对的形式。为了简单起见,单选按钮单击事件检查值,如果是,则显示输入文本字段。如果否,则隐藏输入字段。我还检查准备好的文档的初始状态并显示/隐藏输入文本字段。输入字段动态地隐藏无法显示以后

我发现,点击输入任何结果使用jQuery的.hide隐藏()方法。但是,当我选择是时,结果.show()方法调用不显示输入。如果我将收音机设置为是,然后刷新页面,则输入显示正常。

萤火虫不显示输入的标签。这就像点击没有无线电删除DOM的输入。

这里的JS代码示例:

$(document).ready(function() { 
     if ($('#cost_sharing_yes').attr('checked') == 'checked') { 
      $('input#Institutional_CS_TP').show(); 
     } else { 
      $('input#Institutional_CS_TP').hide(); 
     } 

     $('#cost_sharing_yes').click(function() { 
      $('input[id="Institutional_CS_TP"]').show(); 
     }); 
     $('#cost_sharing_no').click(function() { 
      $('input#Institutional_CS_TP').fadeOut("fast"); 
     }); 
    }   
+0

尝试,如果($(“#cost_sharing_yes”)为(“:勾选”)){} 也注意到淡出..不应该有差别,但使用隐藏()..可能有问题,不透明度或东西 – deach

回答

2

您关闭待机功能缺失)

$(document).ready(function() { 

} // <-- 

对于获得的输入checked属性perperly你应该使用prop方法而不是attr

$(document).ready(function() { 
    var isChecked = $('#cost_sharing_yes').prop('checked'); 
    $('#Institutional_CS_TP').toggle(isChecked); 
    // .. 
}) 
+0

仅当您使用jQuery> 1.6时,才会使用prop()方法。在以前的jQuery版本中,attr()被用来操纵“checked”。 – Dracs

+0

@Dracs这是真的,'attr'很容易出错,他们创建了应该用于处理属性的方法。 – undefined

+0

是在我提供的引用示例中,我忘记添加结束字符)。我曾尝试修改我的代码以使用.prop方法而不是.attr,但这不能解决我输入时应该显示的问题。有关于此的任何想法? – teaman

0

我想通了我的问题。这是一个自我造成的编码问题。 为了保持简单的例子,我删除了另一个函数调用,我认为这个函数没有影响问题。我错了。在那个函数中我有

$('td#Institutional_CS_TP).text('$0'); 
    $('input[name="Institutional_CS_TP"]').val('0.00'); 

这导致只有td值显示,而不是相同td内的输入。 我的td和td中的输入标签都有相同的ID值...不是一个好主意。

相关问题