【问题标题】:Dynamic javascript to detect if checkboxes are checked and disable corresponding input fields动态javascript检测复选框是否被选中并禁用相应的输入字段
【发布时间】:2013-11-03 11:05:07
【问题描述】:

当使用 PHP For 子句动态加载一组输入字段时,我希望为每一行设置一个复选框,以便在用户选中它时,该特定行的所有输入字段都将被禁用。

我需要动态调整 javascript,以便在每次单击相应复选框时禁用每个特定行,但我真的不知道如何实现它。

这是我的代码:

 <?php 
for ($i=0;$i<5;$i++)
     {
   ?>
   <tr>
   <td><input id="includeItem<?=$i?>" type="checkbox" onchange="includeMore" name="item<?=$i?>"></td>
   <td><input name="id<?=$i?> style="color:#888;" disabled="disabled"></td>
   <td><input id="formItems<?=$i?>" class="datepicker" name="date<?=$i?>"></td>
   <td><input id="formItems<?=$i?>" name="description<?=$i?>"></td>
   <td><input id="formItems<?=$i?>" name="amount<?=$i?>"></td>
   </tr>
<?php } ?>

那么我的javascript如下:

<script>
    function includeMore()  {
        var $check = $('#includeItem');
            if($('#includeItem').is(':checked')) 
                {
                $('#formItems').attr.('disabled','');
                }
            else {
                $('#formItems').attr.('disabled','disabled');
                }
        }

</script>   

【问题讨论】:

  • 使用this指针
  • 您能详细说明一下吗?
  • 您想在点击时禁用点击行的复选框,对吗?
  • @samyb8 我的回答有帮助吗?

标签: javascript php jquery input checkbox


【解决方案1】:

首先你需要添加更改事件监听器

var $checkboxes = $( '.class-for-the-input' );

$checkboxes.on( 'change', function ( evt ) {
    //... code
});

在函数处理程序内部,需要获取父行,找到所有不等于被点击的复选框的输入元素,并根据复选框的状态禁用它:

var $this = $( this ), isChecked = this.checked,
    $els = $this.parents( 'tr' ).find( ':input' ).not( $this );

if ( isChecked ) {
    $els.prop( 'disabled', 'disabled' );
} else {
    $els.removeProp( 'disabled' );
}

【讨论】:

    猜你喜欢
    • 2018-10-14
    • 2017-11-15
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多