使用jQuery切换“required”属性

8
这是jsfiddle链接:http://jsfiddle.net/LEZ4r/77/ 以下为代码:
<form action="demo_form.asp">
  <input type="text" name="first_name" value="" id="freeform_first_name"
    maxlength="150" required/>
  <div>
      Needs coupon? 
      <input type="radio" name="requires" value="yes">Yes</input>
      <input type="radio" name="requires" value="no" checked>No</input>
  </div>
        <div class="coupon" id="hidden">
            <input type="text" name="code"
            maxlength="150"/>
            </div>
        <input type="submit"/>
</form>

$(function(){
$('.coupon').toggle();  $('input:radio[name="requires"]').change(function() {
        var coup = $('.coupon');
        coup.toggle();
        if (coup.prop('required')) {
            coup.prop('required', false);
        } else {
            coup.prop('required', true);
        }
    });
});

当我在Chrome控制台中检查时,确实设置了所需的属性。但是提交表单时,它似乎没有起作用。出了什么问题?


1
没有 JSFiddle 的话,这个问题是无法回答的。请在问题本身中包含所有必要的内容以诊断问题。 - user229044
1个回答

19

您将required属性设置在包含 inputdiv 上,而不是在 input 元素本身上。

您需要在 input 元素上实际设置 required 属性:

coup.find('input').prop('required', true)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接