仅禁用不需要的输入Javascript

时间:2016-10-14 13:31:06

标签: javascript html html-table

我有这个很酷的Javascript来禁用行并且输入的颜色被禁用。

但我需要:
如果填充输入#1,则禁用所有其他3个输入,
如果填充输入#3,则禁用所有其他3个输入,
如果输入#2和/或#4,则输入#1和#3被禁用 数据来自数据库。

使用Javascript:

$(".input").on("keypress change keyup",function(){
   if($(this).val() != "")
   {
     $(this).parent().parent().find(".input").not($(this)).prop("disabled",true).css("background-color","#cccccc");  
   }
   else
   {         $(this).parent().parent().find(".input").prop("disabled",false).css("background-color","#ffffff");
   }
});

这是表格代码:

<table>
  <tr>
    <td>
      <input type="text" class="input" value="">
    </td>
    <td>
      <input type="text" class="input" value="">
    </td>
    <td>
      <input type="text" class="input" value="">
    </td>
  </tr>
  <tr>
    <td>
      <input type="text" class="input" value="">
    </td>
    <td>
      <input type="text" class="input" value="">
    </td>
    <td>
      <input type="text" class="input" value="">
    </td>
  </tr>
  </table>

这段代码由Alexis制作。

1 个答案:

答案 0 :(得分:1)

以下是您寻求的代码......

HTML

为了避免您遇到隐藏输入等问题并且不知道每个元素的第n个术语,请改用类:

<table>
  <tr>
    <td>
      <input type="hidden" class="input" value="">
    </td>
    <td>
      <input type="text" class="input toggle all" value="">
    </td>
    <td>
      <input type="text" class="input toggle every-other" value="">
    </td>
    <td>
      <input type="text" class="input toggle all" value="">
    </td>
    <td>
      <input type="text" class="input toggle every-other" value="">
    </td>
  </tr>
</table>

JQuery的

$('body').on( 'keyup blur', '.input.toggle', function() {
    var $this = $( this );
    var $parent = $this.parent();
    var $disable = $parent.siblings().children();
    if ( $this.val() != "" )
    {
              if ( $this.is( '.all' ) )
                {
                      $disable = $parent.siblings().children( '.toggle' );
                }
              else if ( $this.is( '.every-other' ) )
                {
                      $disable = $parent.siblings().children( '.all' );
                }
              $disable.attr( 'disabled', true ).css("background-color","#ccc");
    }
    else
    {
        $disable.removeAttr('disabled').css("background-color","#fff");
    }
});

here就是它的一个例子。