2014-10-20 104 views
0

我正在設置一個由輸入,複選框和表單提交表單組成的頁面。Javascript代碼和HTML標記

當我加載頁面,不管我以前保存的設置,它說明不了什麼下面<select class="required-entry">

如何編輯的JavaScript代碼,使其正常工作?

這裏是JavaScript:

$(function() {  
$('.required-entry').change(function(){ // use class or use $('select') 
    if ($(this).val() == "3" || $(this).val() == "2") { 
     $("#attach").show(); 

    } else { 
     $("#attach").hide(); 
    } 
}); 
}); 
$(function() {  
$('.required-entry').change(function(){ // use class or use $('select') 
    if ($(this).val() == "1" || $(this).val() == "3") { 
       $("#attach2").show(); 
    } else { 
        $("#attach2").hide(); 
    } 
}); 
}); 

下面是HTML代碼:

<select class="required-entry"> 
<option value="0" selected="true">Show nothing</option> 
<option value="2" selected="true">WhatsApp only</option> 
<option value="1" selected="true">E-mail only</option> 
<option value="3" selected="true">WhatsApp + E-mail</option> 
</select> 

<div id="attach" style="display:none;" >WhatsApp description</div> 
<div id="attach2" style="display:none;" >E-mail description</div> 
+2

你不應該預先選擇的每一個選項 – Bobby 2014-10-20 13:45:01

+1

只是觸發頁面加載'change'事件。 – 2014-10-20 13:46:39

+0

「我以前保存的設置」 - 如何保存這些設置?直接到一個文件?到數據庫?您發佈的腳本僅在用戶更改'#.required-entry'時執行,即使這樣,它仍會根據當前選擇進行操作,而不會檢索任何「已保存」的內容。 – Teemu 2014-10-20 13:51:14

回答

0

SOLUTION

你不應該預先選擇的每一個選項,你應該觸發頁面加載改變事件;

$(function() {  
 
    
 
    $('.required-entry').change(function(){  
 
    var val = $(this).val(); 
 

 
    if (val == "3" || val == "2") $("#attach").show(); 
 
    else $("#attach").hide(); 
 
     
 
    if (val == "1" || val == "3") $("#attach2").show(); 
 
    else $("#attach2").hide(); 
 
    
 
    }); 
 
    
 
    $('.required-entry').trigger('change'); 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
    <select class="required-entry"> 
 
     <option value="0" selected="true">Show nothing</option> 
 
     <option value="2">WhatsApp only</option> 
 
     <option value="1">E-mail only</option> 
 
     <option value="3">WhatsApp + E-mail</option> 
 
    </select> 
 

 
    <div id="attach" style="display:none;" >WhatsApp description</div> 
 
    <div id="attach2" style="display:none;" >E-mail description</div>

0

我用你的代碼來創建一個小提琴here。它似乎工作正常。你包括jQuery?你看到你的控制檯有任何錯誤嗎?

$(function() {  
$('.required-entry').change(function(){ // use class or use $('select') 
    if ($(this).val() == "3" || $(this).val() == "2") { 
     $("#attach").show(); 

    } else { 
     $("#attach").hide(); 
    } 
}); 
}); 
$(function() {  
$('.required-entry').change(function(){ // use class or use $('select') 
    if ($(this).val() == "1" || $(this).val() == "3") { 
       $("#attach2").show(); 
    } else { 
        $("#attach2").hide(); 
    } 
}); 
}); 
+0

這是一條評論,而不是答案。 – 2014-10-20 15:39:46