【问题标题】:Execute after multi conditions are true多条件成立后执行
【发布时间】:2016-11-24 14:07:21
【问题描述】:

我想制作动态表单域。例如,取决于表单字段的选择,我想显示隐藏字段或隐藏显示块。

例如,如果我选择第一个字段为“高中”,则显示“婚姻状况”字段。该字段默认隐藏。

见示例代码here

非常感谢!!

这里是 HTML

    <!-- fieldsets -->
    <fieldset>
        <h2 class="fs-title">Check your eligibility</h2>
        <h3 class="fs-subtitle">About yourself</h3>
         <label for="educationLevel" tabindex="1">Education:<select name="educationLevel" class="pie" id="educationLevel" onchange="myfunction();">
            <option value="0">Select an option</option>
            <option value="1">High School</option>
            <option value="2">College</option>
            <option value="3">Grad School</option>
        </select></label>

        <label for="quiz-applicantCountry" tabindex="1" id="yourself">YOUR COUNTRY OF BIRTH:<select name="applicantCountry" id="your-applicantCountry" class="pie" onchange="myfunction();">
            <option value="0">Select a Country</option>
            <option value="54">Afghanistan</option>
            <option value="93">Albania</option>
            ...
            <option value="52">Zambia</option>
            <option value="53">Zimbabwe</option>
        </select></label>
      <label for="maritalStatus" tabindex="2" id="marital">Marital Status:<select name="maritalStatus" class="pie" id="maritalStatus" onchange="myfunction();">
            <option value="0">select</option>
            <option value="1">YES</option>
            <option value="2">NO</option>
        </select></label>
      <label for="quiz-applicantCountry" tabindex="1" id="spouse">YOUR SPOUSE COUNTRY OF BIRTH:<select name="applicantCountry" id="spouse-applicantCountry" class="pie" onchange="myfunction();">
            <option value="0">Select a Country</option>
            <option value="54">Afghanistan</option>
            ...
            <option value="52">Zambia</option>
            <option value="53">Zimbabwe</option>
        </select></label>


        <input type="button" name="next" class="next action-button" value="Next" />
    </fieldset>

</form>

这里是 JavaScript

    function myfunction(){
    var birthSelectedCountry = $("select#your-applicantCountry option:selected").val();
    // console.log(birthSelectedCountry);
    var country = "-" + birthSelectedCountry + "-";
    var eligibleCountries = "-61-65-81-86-82-91-266-223-95-102-175-104-106-112-120-140-146-156-163-221-190-177-181-183-187-261-262-189-194-56-182-38-279-287-267-115-123-280-288-286-137-281-289-282-283-149-270-284-285-1000-";

    var birthSpouseSelectedCountry = $("select#your-applicantCountry option:selected").val();
    // console.log(birthSpouseSelectedCountry);
    var spouseCountry = "-" + birthSpouseSelectedCountry + "-";
    var eligibleSpouseCountries = "-61-65-81-86-82-91-266-223-95-102-175-104-106-112-120-140-146-156-163-221-190-177-181-183-187-261-262-189-194-56-182-38-279-287-267-115-123-280-288-286-137-281-289-282-283-149-270-284-285-1000-";
    var maritalStatus = $("select#maritalStatus option:selected").val();
    // console.log(maritalStatus);
    var marital = "-" + maritalStatus + "-";
    var eligibleMarital = "-1-2-";
    var educationLevel = $("#educationLevel option:selected").val();
    var education = "-" + educationLevel + "-";
    var eligibleEducationLevel = "-2-3-";

console.log(education);
console.log(marital);
console.log(country);
console.log(eligibleEducationLevel.indexOf(education));
console.log(eligibleMarital.indexOf(marital));
console.log(eligibleCountries.indexOf(country));

if( eligibleEducationLevel.indexOf(education) < 0 && eligibleCountries.indexOf(country) < 0 ) { 
  console.log("Are you married?");
  // $('#marital').fadeIn();
  $('#marital').css('display', "block");
}

【问题讨论】:

    标签: javascript jquery html css forms


    【解决方案1】:

    试试这个:

    JAVASCRIPT

    if ($("#educationLevel").val() == "1"){
        $("#maritalStatus").show();
    } else {
        // Do something else..
    }
    

    如果我正确理解了这个问题。

    【讨论】:

      【解决方案2】:

      在您的 document.ready() 事件中,通过引用它们的 ID 来隐藏所有控件。 document.ready() 函数用于初始化整个页面的整个行为。

      $(document.ready(function(){
      
            //hide the maritalStatus dropdown initially at pageload.
            $('#maritalStatus').hide(); 
            $('#spouse-applicantCountry').hide();
            $('#maritalStatus').val(0); 
            $('#spouse-applicantCountry').val(0);
      
            //This the onchange event of the select
            $('#educationLevel').on('change', function() {
                $('#maritalStatus').show();
      
                //Put your conditions here
                if($('#maritalStatus').val() == "1"){
                  $('#spouse-applicantCountry').show();  
                }
            });
      }));
      

      onChange 下拉菜单无法按预期正常工作,因为通常在定义函数之前呈现选择控件。

      希望这会有所帮助! 干杯!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-11-01
        • 1970-01-01
        • 2011-11-30
        • 1970-01-01
        • 2020-10-27
        • 2015-02-27
        • 1970-01-01
        相关资源
        最近更新 更多