Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-如何在复选框更改时移除Prop?_Javascript_Jquery_Attr_Required_Prop - Fatal编程技术网

Javascript jQuery-如何在复选框更改时移除Prop?

Javascript jQuery-如何在复选框更改时移除Prop?,javascript,jquery,attr,required,prop,Javascript,Jquery,Attr,Required,Prop,我有一个复选框,用于使用jQuery切换输入字段是否为“必需”。这是基础遵守验证的一部分。因此,在输入字段的末尾需要添加/删除单词“required” 默认情况下,该框处于选中状态。当用户取消选中该框时,它会将“必需”添加到输入中。但是,如果重新检查该框,“removeProp”不会删除“required”。我在这件事上做错了什么?我尝试了prop和attr函数,得到了相同的结果 <input type="checkbox" id="billing" checked> <in

我有一个复选框,用于使用jQuery切换输入字段是否为“必需”。这是基础遵守验证的一部分。因此,在输入字段的末尾需要添加/删除单词“required”

默认情况下,该框处于选中状态。当用户取消选中该框时,它会将“必需”添加到输入中。但是,如果重新检查该框,“removeProp”不会删除“required”。我在这件事上做错了什么?我尝试了prop和attr函数,得到了相同的结果

<input type="checkbox" id="billing" checked>

<input type="text" id="b_name" pattern="alpha" required>


$('#billing').change(function() {

    // Same as Shipping Address
    if ($(this).is(':checked')) {
      $('#b_name').removeProp('required');
    }
    else if (!$(this).is(':checked')) {
      $('#b_name').prop('required', true);
    }

  });

$('#计费')。更改(函数(){
//与送货地址相同
如果($(this).is(':checked')){
$('b#u name')。removeProp('required');
}
如果(!$(this).is(':checked'),则为else{
$('b#u name').prop('required',true);
}
});
试试这个:

$('#billing').change(function() {

    // Same as Shipping Address
    if ($(this).is(':checked')) {
      $('#b_name').prop('required', false);
    }
    else {
      $('#b_name').prop('required', true);
    }

  });

你可以清楚地看到那里的行为。一旦删除属性,就不会再添加属性

您可以看到中提到的相同案例

正如上面所说的-

注意:不要使用此方法删除本机属性,例如已选中、已禁用或已选择。这将完全删除该属性,一旦删除,就不能再次添加到元素中。使用.prop()将这些属性改为false

因此,您可以在选中和取消选中时将其设置为false和true,而不是完全删除该属性

$('#计费')。更改(函数(){
//与送货地址相同
如果($(this).is(':checked')){
$('b#u name').prop('required',false);
}
如果(!$(this).is(':checked'),则为else{
$('b#u name').prop('required',true);
}
});


只需将其设置为False即可。我可以发誓我早就试过了。感谢您的快速回复。请在指定的最短时间内等待,然后再让我回复。:)@斯科特布雷尔:没问题:)