根据所选的无线电显示表格行

时间:2012-09-26 11:39:59

标签: jquery checkbox html-table row show-hide

再一次,再一次......我的Javascript / jQuery知识问题。 这次,我想在选择无线电值时出现一行。我迷失了我需要出现的那一行。

这是一行:

            <tr class="others" id="others" style="display:none;">
            <th colspan="2"><?php _e('Others', 'shop'); ?></th>
            <td><?php echo fee; ?>&nbsp;&euro;</td>
            </tr>

这就是jquery:

      $(document).ready(function() {
      $('input').click(function(){
      var isChecked = $('#payment_method_paypal').prop('checked');
      // make the row appear appear if "payment_method_paypal" is checked
      });  

我尝试使用警报并且它正常工作,但是在行中,我尝试了我在Stack Overflow和Google上找到的每一个解决方案,但无法使其正常工作。

3 个答案:

答案 0 :(得分:3)

您可以将布尔值传递给jquerys toggle方法

  

.toggle(showOrHide)

     

一个布尔值,指示是否显示或隐藏元素。

这应该有效

var isChecked = $('#payment_method_paypal').prop('checked');
$('#others').toggle(isChecked); //show/hide based on the bool

Fiddle

答案 1 :(得分:1)

尝试

$('#others').hide();

$('#others').show();

隐藏并显示该行。

答案 2 :(得分:1)

HTML

<table>
<tr> <td>-------------------</td></tr>
<tr> <td class="trData">-------SHOW------</td></tr>
<tr> <td>-------------------</td></tr>
</table>

<div id="container">
  <input type="radio" name="colors" id="red" value="show" checked/>Show<br />
  <input type="radio" name="colors" id="blue" value="hide" />Hide<br />
</div>  

JS

$("#container").find("input[type=radio]:checked").on("click", function() {
    if($(this).attr('value')=='show')
    {
        $(".trData").show()
    }else{
        $(".trData").hide()
    }
});​

JS2 更紧凑,但在这种情况下,您需要在单选按钮中设置正确的值

$("#container").find("input[type=radio]:checked").on("click", function(event) {
    var op= $(this).attr('value');
    jQuery.globalEval('$(".trData").'+op+'()')
});​

DEMO