用JS切换禁用的类

时间:2017-05-11 02:53:32

标签: javascript jquery

如果选择了特定的单选按钮,我会尝试通过添加类来禁用按钮。这是我的第一次Javascript迭代。

var slug = $("input[name='slug']:checked").val();

$(document).on('change', 'input', function() {
  if (slug == "the_lone_snitch") {
    $(".button").addClass("disabled")
  }
});

所以,每当单选按钮不是" the_lone_snitch时,它就会删除被禁用的类,每次它等于" the_lone_snitch"它增加了课程。

2 个答案:

答案 0 :(得分:1)

请注意,要禁用按钮,您要将disabled属性设置为true,而不仅仅是添加一个类。总之...

您的代码仅获取在第一行运行时检查的任何单选按钮的值,即更改事件发生之前。您需要在更改处理程序中获取当前值 ,并且需要else大小写以在不需要时删除该类:

$(document).on('change', 'input', function() {
  var slug = $("input[name='slug']:checked").val();
  if (slug == "the_lone_snitch") {
    $(".button").addClass("disabled").prop("disabled", true);
  } else {
    $(".button").removeClass("disabled").prop("disabled", false);
  }
});

你可以稍微简化它,因为在处理程序中你可以使用this.value(其中this是刚刚点击的元素)并使用.toggleClass() method,它接受​​一个boolean表示是否添加或删除该类。

$(document).on('change', 'input[name="slug"]', function() {
  var disable = this.value == "the_lone_snitch";
  $(".button").toggleClass("disabled", disable)
    .prop("disabled", disable);
});
.disabled { color: blue; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<label><input type="radio" name="slug" value="abc">Enabled</label>
<label><input type="radio" name="slug" value="the_lone_snitch">Disabled</label>
<br>
<button class="button">Button</button>

答案 1 :(得分:0)

首先让我知道您的上述代码是否添加了禁用的类。 如是, 然后你错过的是当slug不等于&#34; the_lone_snitch&#34;

时给它一个别的部分

您的完整代码应该是

inputs = ((x > 5, x) for x in range(10))
(_, a), (_, b) = groupby(inputs, key=itemgetter(0))
print(list(a))
print(list(b))