2017-07-20 2 views
0

セレクタで^を使用して、そのIDのすべてのオプションをform1_productで検索してすべての値を非表示にしてクリアします。適切な選択オプションを表示するように切り替えます。フィールドを選択すると値がクリアされますが、最初のオプションは無視されます

これは、すべて機能していますが、私が持っている問題は、現在、それはすべての値を除去しますので、私はオプションリストの最初のオプションを無視するにはどうすればよい

です。 nullvalueを設定

$(document).ready(function() { 
 

 
    toggleFields(); 
 

 
    $("#form1_segment").change(function() { 
 
    toggleFields(); 
 
    }); 
 

 
    function toggleFields() { 
 

 
    $("[id^=form1_product]").hide().val(null); 
 

 
    switch ($("#form1_segment").val()) { 
 
     case "Food Service": 
 
     $("#form1_product").show(); 
 
     break; 
 
     case "Building Care": 
 
     $("#form1_product_bc").show(); 
 
     break; 
 
     case "Industry": 
 
     $("#form1_product_in").show(); 
 
     break; 
 
     case "Health Care": 
 
     $("#form1_product_hc").show(); 
 
     break; 
 
     case "Automotive": 
 
     $("#form1_product_auto").show(); 
 
     break; 
 
     case "Aerospace": 
 
     $("#form1_product_aero").show(); 
 
    } 
 
    } 
 
});
div { 
 
    display: block; 
 
    margin-bottom: 20px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="form1_contact" class="contact-form" action="/en-us/contact" method="post"> 
 
    <div> 
 
    <input id="form1_name" name="name" class="contact-form__input" placeholder="Full Name" type="text" required="required" /> 
 
    </div> 
 
    <div> 
 
    <input id="form1_email" name="email" class="contact-form__input" placeholder="Email address" type="email" required="required" /> 
 
    </div> 
 
    <div class="split-form"> 
 
    <label for="form1_segment">Segment</label> 
 
    <select id="form1_segment" name="segment" class="test"> 
 
     <option value="Select a Segment">Select a Segment</option> 
 
     <option value="Food Service">Food Service</option> 
 
     <option value="Building Care">Building Care</option> 
 
     <option value="Industry">Industry</option> 
 
     <option value="Health Care">Health Care</option> 
 
     <option value="Automotive">Automotive</option> 
 
     <option value="Aerospace">Aerospace</option> 
 
    </select> 
 
    </div> 
 
    <div class="split-form last"> 
 
    <label for="form1_product">Product</label> 
 
    <select id="form1_product" name="product" class="test"> 
 
     <option value="Select a product">Select a product</option> 
 
     <option value="S.U.D.S.® Single Use Dispensing System">S.U.D.S.® Single Use Dispensing System</option> 
 
     <option value="Chix® SC Foodservice Towels">Chix® SC Foodservice Towels</option> 
 
     <option value="Chix® SC Foodservice Towels">Chix® SC Foodservice Towels</option> 
 
     <option value="Chix® Pro-Quat®">Chix® Pro-Quat®</option> 
 
     <option value="Chix® Pro-Quat®">Chix® Pro-Quat®</option> 
 
     <option value="Chix® Pro-Quat®">Chix® Pro-Quat®</option> 
 
     <option value="Chix® Pro-Chlor®">Chix® Pro-Chlor®</option> 
 
     <option value="Chix® Microfiber Light Cloths">Chix® Microfiber Light Cloths</option> 
 
     <option value="Chix® Plus with Microban">Chix® Plus with Microban</option> 
 
     <option value="Chix® Towels with Microban">Chix® Towels with Microban</option> 
 
     <option value="Chix® Towels">Chix® Towels</option> 
 
     <option value="Chix® Plus Sanitizing">Chix® Plus Sanitizing</option> 
 
     <option value="Chix® Soft Cloth">Chix® Soft Cloth</option> 
 
     <option value="Chix® Tough">Chix® Tough</option> 
 
     <option value="Chix® All Day™">Chix® All Day™</option> 
 
     <option value="Chix® Wet Wipes">Chix® Wet Wipes</option> 
 
     <option value="Chix® Competitive Wet Wipes">Chix® Competitive Wet Wipes</option> 
 
     <option value="Chix® Economy Towels">Chix® Economy Towels</option> 
 
     <option value="Chix® 3000">Chix® 3000</option> 
 
     <option value="Quix® Pretreated Towels">Quix® Pretreated Towels</option> 
 
     <option value="Chix® Apron">Chix® Apron</option> 
 
     <option value="Worxwell®">Worxwell®</option> 
 
    </select> 
 
    <select id="form1_product_bc" name="product_bc" class="test"> 
 
     <option value="Select a product">Select a product</option> 
 
     <option value="Dusty™ High Performance Dust Cloth">Dusty™ High Performance Dust Cloth</option> 
 
     <option value="Masslinn® Heavy Duty Dust Cloth">Masslinn® Heavy Duty Dust Cloth</option> 
 
     <option value="S.U.D.S.® Single Use Dispensing System">S.U.D.S.® Single Use Dispensing System</option> 
 
     <option value="Masslinn® Medium Duty Dust Cloth">Masslinn® Medium Duty Dust Cloth</option> 
 
     <option value="Masslinn® Light Duty Dust Cloth">Masslinn® Light Duty Dust Cloth</option> 
 
     <option value="Economy Duster">Economy Duster</option> 
 
     <option value="Masslinn Dusting Tools">Masslinn Dusting Tools</option> 
 
    </select> 
 
    <select id="form1_product_in" name="product_in" class="test"> 
 
     <option value="Select a product">Select a product</option> 
 
     <option value="Durawipe® Heavy Duty Shop Towel">Durawipe® Heavy Duty Shop Towel</option> 
 
    </select> 
 
    <select id="form1_product_hc" name="product_hc" class="test"> 
 
     <option value="Select a product">Select a product</option> 
 
     <option value="Worxwell® Towels">Worxwell® Towels</option> 
 
     <option value="Soft Cloth Patient Wipes">Soft Cloth Patient Wipes</option> 
 
     <option value="Professional Series">Professional Series</option> 
 
     <option value="Dwell™ Disinfectant Compatible Healthcare Towels">Dwell™ Disinfectant Compatible Healthcare Towels</option> 
 
     <option value="Dusty™ High Performance Dust Cloths">Dusty™ High Performance Dust Cloths</option> 
 
    </select> 
 
    <select id="form1_product_auto" name="product_auto" class="test"> 
 
     <option value="No products available">No products available</option> 
 
    </select> 
 
    <select id="form1_product_aero" name="product_aero" class="test"> 
 
     <option value="No products available">No products available</option> 
 
    </select> 
 
    </div> 
 
    <div> 
 
    <textarea id="form1_message" name="message" class="contact-form__input contact-form__textarea" cols="30" rows="4" placeholder="Message"></textarea> 
 
    </div> 
 
    <div> 
 
    <input id="form1_submit" name="submit" class="btn btn__round subform__button" value="Send Message" type="submit" /> 
 
    </div> 
 
</form>

+1

使用 ':ありません()' 'と:それぞれの最初のオプションを除外するための最初の-child'を選択:' $( "[ID^= form1_product]:ない(:最初の-child) ")。)hide().val(null);'また、 'option'要素の値をオンザフライで設定することは悪い考えです。私は、あなたが必要とすることをやるのがはるかに簡単で控えめな方法があると確信しています。 –

+0

'$(" [id^= form1_product]:not(:first-child) ")。)hide()。val(null);'これを試しましたが、スイッチケースを壊してすべてのフィールドを表示 –

+0

本当に助けになるにはHTMLを見なければなりません。 –

答えて

1

noオプションが選択されていないようにそれを作る、ない(「なし製品」または「製品を選択」の値を有する)最初の1 。私はあなたが実際にそれぞれselectの最初のオプションを選択したいと思う。

次のコードは、以前のようにselectを非表示にし、すべてのオプションの選択を解除して、最初のものを選択します。これを行うには他の方法がありますが、これは私の頭の中でポップアップするようなことです。

$(document).ready(function() { 
 

 
    toggleFields(); 
 

 
    $("#form1_segment").change(function() { 
 
    toggleFields(); 
 
    }); 
 

 
    function toggleFields() { 
 

 
    $("[id^=form1_product]").hide().find('option').prop('selected', false).first().prop('selected', true); 
 

 
    switch ($("#form1_segment").val()) { 
 
     case "Food Service": 
 
     $("#form1_product").show(); 
 
     break; 
 
     case "Building Care": 
 
     $("#form1_product_bc").show(); 
 
     break; 
 
     case "Industry": 
 
     $("#form1_product_in").show(); 
 
     break; 
 
     case "Health Care": 
 
     $("#form1_product_hc").show(); 
 
     break; 
 
     case "Automotive": 
 
     $("#form1_product_auto").show(); 
 
     break; 
 
     case "Aerospace": 
 
     $("#form1_product_aero").show(); 
 
    } 
 
    } 
 
});
div { 
 
    display: block; 
 
    margin-bottom: 20px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="form1_contact" class="contact-form" action="/en-us/contact" method="post"> 
 
    <div> 
 
    <input id="form1_name" name="name" class="contact-form__input" placeholder="Full Name" type="text" required="required" /> 
 
    </div> 
 
    <div> 
 
    <input id="form1_email" name="email" class="contact-form__input" placeholder="Email address" type="email" required="required" /> 
 
    </div> 
 
    <div class="split-form"> 
 
    <label for="form1_segment">Segment</label> 
 
    <select id="form1_segment" name="segment" class="test"> 
 
     <option value="Select a Segment">Select a Segment</option> 
 
     <option value="Food Service">Food Service</option> 
 
     <option value="Building Care">Building Care</option> 
 
     <option value="Industry">Industry</option> 
 
     <option value="Health Care">Health Care</option> 
 
     <option value="Automotive">Automotive</option> 
 
     <option value="Aerospace">Aerospace</option> 
 
    </select> 
 
    </div> 
 
    <div class="split-form last"> 
 
    <label for="form1_product">Product</label> 
 
    <select id="form1_product" name="product" class="test"> 
 
     <option value="Select a product">Select a product</option> 
 
     <option value="S.U.D.S.® Single Use Dispensing System">S.U.D.S.® Single Use Dispensing System</option> 
 
     <option value="Chix® SC Foodservice Towels">Chix® SC Foodservice Towels</option> 
 
     <option value="Chix® SC Foodservice Towels">Chix® SC Foodservice Towels</option> 
 
     <option value="Chix® Pro-Quat®">Chix® Pro-Quat®</option> 
 
     <option value="Chix® Pro-Quat®">Chix® Pro-Quat®</option> 
 
     <option value="Chix® Pro-Quat®">Chix® Pro-Quat®</option> 
 
     <option value="Chix® Pro-Chlor®">Chix® Pro-Chlor®</option> 
 
     <option value="Chix® Microfiber Light Cloths">Chix® Microfiber Light Cloths</option> 
 
     <option value="Chix® Plus with Microban">Chix® Plus with Microban</option> 
 
     <option value="Chix® Towels with Microban">Chix® Towels with Microban</option> 
 
     <option value="Chix® Towels">Chix® Towels</option> 
 
     <option value="Chix® Plus Sanitizing">Chix® Plus Sanitizing</option> 
 
     <option value="Chix® Soft Cloth">Chix® Soft Cloth</option> 
 
     <option value="Chix® Tough">Chix® Tough</option> 
 
     <option value="Chix® All Day™">Chix® All Day™</option> 
 
     <option value="Chix® Wet Wipes">Chix® Wet Wipes</option> 
 
     <option value="Chix® Competitive Wet Wipes">Chix® Competitive Wet Wipes</option> 
 
     <option value="Chix® Economy Towels">Chix® Economy Towels</option> 
 
     <option value="Chix® 3000">Chix® 3000</option> 
 
     <option value="Quix® Pretreated Towels">Quix® Pretreated Towels</option> 
 
     <option value="Chix® Apron">Chix® Apron</option> 
 
     <option value="Worxwell®">Worxwell®</option> 
 
    </select> 
 
    <select id="form1_product_bc" name="product_bc" class="test"> 
 
     <option value="Select a product">Select a product</option> 
 
     <option value="Dusty™ High Performance Dust Cloth">Dusty™ High Performance Dust Cloth</option> 
 
     <option value="Masslinn® Heavy Duty Dust Cloth">Masslinn® Heavy Duty Dust Cloth</option> 
 
     <option value="S.U.D.S.® Single Use Dispensing System">S.U.D.S.® Single Use Dispensing System</option> 
 
     <option value="Masslinn® Medium Duty Dust Cloth">Masslinn® Medium Duty Dust Cloth</option> 
 
     <option value="Masslinn® Light Duty Dust Cloth">Masslinn® Light Duty Dust Cloth</option> 
 
     <option value="Economy Duster">Economy Duster</option> 
 
     <option value="Masslinn Dusting Tools">Masslinn Dusting Tools</option> 
 
    </select> 
 
    <select id="form1_product_in" name="product_in" class="test"> 
 
     <option value="Select a product">Select a product</option> 
 
     <option value="Durawipe® Heavy Duty Shop Towel">Durawipe® Heavy Duty Shop Towel</option> 
 
    </select> 
 
    <select id="form1_product_hc" name="product_hc" class="test"> 
 
     <option value="Select a product">Select a product</option> 
 
     <option value="Worxwell® Towels">Worxwell® Towels</option> 
 
     <option value="Soft Cloth Patient Wipes">Soft Cloth Patient Wipes</option> 
 
     <option value="Professional Series">Professional Series</option> 
 
     <option value="Dwell™ Disinfectant Compatible Healthcare Towels">Dwell™ Disinfectant Compatible Healthcare Towels</option> 
 
     <option value="Dusty™ High Performance Dust Cloths">Dusty™ High Performance Dust Cloths</option> 
 
    </select> 
 
    <select id="form1_product_auto" name="product_auto" class="test"> 
 
     <option value="No products available">No products available</option> 
 
    </select> 
 
    <select id="form1_product_aero" name="product_aero" class="test"> 
 
     <option value="No products available">No products available</option> 
 
    </select> 
 
    </div> 
 
    <div> 
 
    <textarea id="form1_message" name="message" class="contact-form__input contact-form__textarea" cols="30" rows="4" placeholder="Message"></textarea> 
 
    </div> 
 
    <div> 
 
    <input id="form1_submit" name="submit" class="btn btn__round subform__button" value="Send Message" type="submit" /> 
 
    </div> 
 
</form>

関連する問題