切换按钮时从表单域中删除禁用的属性

时间:2015-07-12 21:58:44

标签: jquery html

当我切换按钮(打开)时,我试图删除禁用的属性,反之亦然。

此时我只创建了一个click事件来删除已禁用的attr。

HTML是: 输入:

 <input id="wb_owner_field" type="text" disabled value="" placeholder="" class="form-control">

当关闭时开/关切换它有类switch-off,当它上面有类switch-on

<div id="wb_owner_toggle" class="switch-off switch-animate" style="">
  <input type="checkbox" data-toggle="switch">
  <span class="switch-left"></span><label>&nbsp;</label>
  <span class="switch-right"></span>
</div>

到目前为止使用的代码。

$("#wb_owner_toggle").click(function(){
      $('#wb_owner_field').prop("disabled", false);
});

基本上我需要在切换div类更改时启动,并根据类删除或添加字段上的禁用attr。

3 个答案:

答案 0 :(得分:1)

使用hasClass()

$("#wb_owner_toggle").click(function(){
      if($(this).hasClass('switch-off')){
            $('#wb_owner_field').prop("disabled", false);
      }
});

答案 1 :(得分:1)

你去吧

$("#wb_owner_toggle").click(function(){
      var owner_el = $('#wb_owner_field');
      owner_el.attr('disabled', !owner_el.is(':disabled'));
});

答案 2 :(得分:0)

正确的答案是disabled属性是布尔属性

  

元素上存在布尔属性表示true   value,缺少属性表示false值。

     

http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes

请仔细阅读。假值 - 缺少该属性。

disabled="false"完全不正确。

因此,通过jQuery删除它的正确方法是:

element.removeAttr('disabled');

如果此算法确认您的情况,则代码为:

$("#wb_owner_toggle").click(function() {
  if ($(this).hasClass('switch-off')) {
    $('#wb_owner_field').removeAttr('disabled');
  }
  else {
    $('#wb_owner_field').attr('disabled');
  }
});