用jquery切换'required'属性

use*_*889 2 jquery

这是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);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

当我通过控制台检查chrome时,确实设置了所需的属性.在提交表格时,它表现得好像不是.出了什么问题?

mea*_*gar 10

你设置requireddiv包含您的input,而不是在input本身.

实际上你需要设置requiredinput:

coup.find('input').prop('required', true)
Run Code Online (Sandbox Code Playgroud)