2013-03-26 183 views
0

加載頁面時(從mysql db動態填充第一個下拉列表(div StatusID))或者用戶從第一個下拉框中選擇Unemployed-EI,div status_sub_6顯示第二個select語句。js隱藏功能

我的.hide .show函數可以很好地激活更改,但是即使動態填充的第一個選擇(StatusID)值滿足比較條件,該函數也會隱藏加載頁面時的第二個下拉列表。

我確定我需要一個覆蓋下面的.js代碼的onload函數,但是在編寫附加代碼時真的很感謝幫助。

的JavaScript:

$(document).ready(function(){ 
    $('#status_sub_6').hide(); 

    $('#StatusID').change(function() { 
     if ($('#StatusID option:selected').text() == "Unemployed - EI"){ 
      $('#status_sub_6').show(); 
     } 
     else { 
       $('#status_sub_6').hide(); 
     } 
    }); 
}); 

回答

1

爲此,您可以通過觸發更改事件負載之後。

$(document).ready(function(){ 
    ... 
    // your current code 
    ... 
    $('#StatusID').trigger('change'); // trigger a change 
}); 
+0

只負載時觸發條件滿足 – Huangism 2013-03-26 18:39:18

+0

@Huangism - 的標準正在裏面檢查更改處理程序。 – techfoobar 2013-03-26 18:42:14

+0

我選擇了這個,因爲它對我來說似乎是最合乎邏輯的,而且完全按照我的需要提供。你們很棒。我希望能夠在未來幫助別人解決問題,因爲很多人都幫助過我。謝謝 – Aquatwit 2013-03-30 01:50:20

0

嘗試:

$(function() { 
    $('#status_sub_6').hide(); 
    $(document).on('change', '#StatusID', function() { 
     if ($('#StatusID option:selected').text() == "Unemployed - EI"){ 
     $('#status_sub_6').show(); 
     } 
     else { 
     $('#status_sub_6').hide(); 
     } 
    }); 

    $('#StatusID').change(); 
}); 
0

你也可以這樣做:

$(document).ready(function(){ 
    if ($('#StatusID option:selected').text() == "Unemployed - EI"){ 
     $('#status_sub_6').hide(); 
    } 

    $('#StatusID').change(function() { 
     if ($('#StatusID option:selected').text() == "Unemployed - EI"){ 
      $('#status_sub_6').show(); 
     } 
     else { 
       $('#status_sub_6').hide(); 
     } 
    }); 
}); 

或略偏優雅的解決方案:

$(document).ready(function() { 
    toggleSub(); 

    $('#StatusID').change(function() { 
     toggleSub(); 
    }); 
}); 

function toggleSub() { 
    if ($('#StatusID option:selected').text() == "Unemployed - EI") { 
     $('#status_sub_6').hide(); 
    } 
    else { 
     $('#status_sub_6').show(); 
    } 
}