如果选中复选框,请移除必填

时间:2017-04-28 20:38:35

标签: javascript jquery checkbox

用户必须选中至少一个复选框,选中复选框后,我想从所有复选框中删除required,然后如果用户取消选中,则不选中任何复选框,重新输入{{1在他们身上 我的代码不起作用。我在这里找到了很多类似的答案,但它们都不适合我,所以我再次提出这个问题。

这是jsFiddle



required

var checkbox_required = $('input[type="checkbox"]');

checkbox_required.prop('required', true);

if (checkbox_required.is(':checked'))
{
	checkbox_required.prop('required', false);
}
else
{
	checkbox_required.prop('required', true);
}




3 个答案:

答案 0 :(得分:2)

您忘记的是添加on('click', ...事件处理程序https://jsfiddle.net/nba_jl/k94stpby/12/



var checkbox_required = $('input[type="checkbox"]');

checkbox_required.prop('required', true);

checkbox_required.on('click', function(){
    if (checkbox_required.is(':checked')) {
        checkbox_required.prop('required', false);
    } else {
        checkbox_required.prop('required', true);
    }
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<form>
  <label class="produit_type">
    <input type="checkbox" name="produit_type[]" value="奢侈品与配饰">奢侈品与配饰
  </label>
  <label class="produit_type">
    <input type="checkbox" name="produit_type[]" value="女士时尚">女士时尚
  </label>
  <label class="produit_type">
    <input type="checkbox" name="produit_type[]" value="男士时尚">男士时尚
  </label>
  <label class="produit_type">
    <input type="checkbox" name="produit_type[]" value="美妆与护肤">美妆与护肤
  </label>
  <label class="produit_type">
    <input type="checkbox" name="produit_type[]" value="儿童">儿童
  </label>
  <label class="produit_type">
    <input type="checkbox" name="produit_type[]" value="内衣">内衣
  </label>
  <label class="produit_type">
    <input type="checkbox" name="produit_type[]" value="家居">家居
  </label>
  <input type="submit" value="submit">
</form>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

出于好奇,我知道这是一个旧线程,但是如果您有两组不同的复选框,并且仅在为每组选中一个复选框的情况下才需要删除必需项,那么该怎么做。

<form>
  <label class="produit_type">
    <input type="checkbox" name="produit_type[]" value="blah"
  </label>
  <label class="produit_type">
    <input type="checkbox" name="produit_type[]" value="blah blah"
  </label>
  <label class="produit_type">
    <input type="checkbox" name="produit_color[]" value="red"
  </label>
  <label class="produit_type">
    <input type="checkbox" name="produit_color[]" value="green"
  </label>
    <input type="submit" value="submit">
</form>

只需保持表格简单即可。因此,有2套复选框,其中一种用于类型,另一种用于颜色。提供的代码将要求全部或全部不要求。一个人将如何修改此代码,以使其仅影响每个集合本身?

例如,如果他们选择类型而不选择颜色,它将删除类型上必填但保留颜色上必填,反之亦然?

答案 2 :(得分:0)

var checkbox_required = $('input[type="checkbox"]');

checkbox_required.attr('required', true);

checkbox_required.on('click', function(){
    if (checkbox_required.is(':checked')) {
        checkbox_required.attr('required', false);
    } else {
        checkbox_required.attr('required', true);
    }
});