如果选择是单选按钮,则需要jQuery或JavaScript验证

时间:2015-01-28 22:20:10

标签: javascript jquery

我有两个单选按钮是/否是必需的。如果选择是,则其他问题会下降(除了两个问题外,所有问题都是必需的:cmiddlename&邮寄地址2)

我选择第一个单选按钮是非常困难,然后在选择No时不需要这些问题。

如果有人能够帮助我解决这个问题,我将不胜感激!

function showhideForm(Mailto_1) {
    if (Mailto_1 == "Yes") {
        document.getElementById("div1").style.display = 'block';
        document.getElementById("div2").style.display = 'none';
    } else if (Mailto_1 == "No") {
        document.getElementById("div2").style.display = 'block';
        document.getElementById("div1").style.display = 'none';
        $("#div1 > .clearfix input:text").val("");
    }
}
<div class="clearfix">
    <label for="Mailto_1">Mail to address other than mailing address(es) listed above?</label>
    <input type="radio" value="Yes" name="Mailto_1" id="Mailto_1" required="yes" onchange="showhideForm(this.value);"/><label for="Mailto_1">Yes</label>

    <input type="radio" value="No" name="Mailto_1" id="noMailto_1" onchange="showhideForm(this.value);"/><label for="noMailto_1">No</label>
</div>

<!-- If Yes is selected Dropdown information appears (if none clear text from textboxes) -->


<div id="div1" class="labelIndent" style="display:none">

    <div class="clearfix">
        <label for="cfirstname_1">Customer's Name As It Appears on Driver License:</label>
        
        <div class="clearfix">
            <input type="text" name="cfirstname_1" id="cfirstname_1" placeholder="First"  validateat="onSubmit" validate="noblanks" required="yes" message="Please enter customer's first name." value="">
            <input type="text" name="cmiddlename_1" id="cmiddlename_1" placeholder="Middle" required="no" value="">
            <input type="text" name="clastname_1" id="clastname_1" placeholder="Last" validateat="onSubmit" validate="noblanks" required="yes" message="Please enter customer's last name." value="">
        </div>
    </div>
    
    <div class="clearfix">
        <label for="cbirthmonth_1">Month:</label>
        <label for="cbirthday_1">Day:</label>
        <label for="cbirthyear_1">Year:</label>
    <!-- <cfinclude template="../../../ddl/cbirthmonth.cfm">
    <cfinclude template="../../../ddl/cbirthday.cfm">
        <cfinclude template="../../../ddl/cbirthyear.cfm"> -->
        </div>

        <div class="clearfix">
          <label for="cgender_1">Sex:</label>
          <select name="cgender_1"> 
            <option value=" "> EMPTY </option> 
            <option value="Male">Male</option> 
            <option value="Female">Female</option> 
        </select> 


        <label for="cdriverlicense_1">DL#:</label>
        <input type="text" name="cdriverlicense_1" id="cdriverlicense_1" validateat="onSubmit" validate="noblanks" required="yes" message="Please enter customer's drivers license number." value="" mask="A999-999-99-999-9">
    </div>

    <div class="clearfix">
        <label for="cstreet_1">Mailing Address 1:</label>
        <input type="text" name="cstreet_1" validateat="onSubmit" validate="maxlength" required="yes" id="cautocomplete1" size="54" maxlength="120" message="Please enter customer's mailing address." onFocus="cgeolocate()" value="">
    </div>

    <div class="clearfix">
        <label for="cm2street_1">Mailing Address 2:</label>
        <input type="text" name="cm2street_1" validateat="onSubmit" required="no" validate="maxlength" id="croute1" size="54" maxlength="120" value="">
    </div>

    <div class="clearfix">
        <label for="ccity_1">City:</label>
        <input type="text" name="ccity_1" validateat="onSubmit" validate="maxlength" required="yes" id="clocality1" size="30" maxlength="50" message="Please enter customer's mailing city." value="">

        <div class="clearfix">
            <label for="cstate_1">State:</label>
            <input type="text" name="cstate_1"  id="cadministrative_area_level_1" size="8" maxlength="12">
        </div>

        
        <div class="clearfix">
            <label for="cpostal_1">Zip Code:</label>
            <input type="text" name="cpostal_1" required="yes" id="cpostal_code1" size="8" maxlength="12" message="Please enter customer's mailing zip code." value="">
        </div>

        <div class="clearfix">
            <label for="cemail_1">Email:</label>
            <input type="cemail_1" name="cemail_1" validateat="onSubmit" validate="email" required="yes" id="email" size="62" maxlength="80" message="Please enter customer's valid email address." value="">
        </div>

    </div>

    <div id="div2" style="display:none"> 
        <!-- You are not qualified to see this form. -->
    </div>

1 个答案:

答案 0 :(得分:1)

从隐藏的表单中删除所有必填字段,然后将您的Javascript更改为:

&#13;
&#13;
function showhideForm(Mailto_1) {
  
  if (Mailto_1 == "Yes") {
    
    document.getElementById("div1").style.display = 'block';
    document.getElementById("div2").style.display = 'none';
    
    $('#div1 input').not('#cmiddlename_1').not('#cm2street_1').each(function() {
      $(this).attr('required', 'required');
    });
    
  } else if (Mailto_1 == "No") {
    
    document.getElementById("div2").style.display = 'block';
    document.getElementById("div1").style.display = 'none';
    
    $('#div1 input').each(function() {
      $(this).removeAttr('required');
    });
    
    $("#div1 > .clearfix input:text").val("");
    
  }
  
}
&#13;
&#13;
&#13;

修改

更新了代码段以排除问题中指定的两个字段。 Fiddle