2013-10-24 43 views
1

我正在使用選定的jQuery插件來選擇選項。在第一次選擇的基礎上,我想決定顯示或隱藏哪個面板。我有兩個小組,一個是
<asp:Panel runat="server" ID="panel1">
另一個是
<asp:Panel runat="server" ID="panel2">
我選擇onchange事件是如下:(這是寫在的.aspx)我無法使用asp.net網站中選擇的onchange事件更改面板的可見性

<script type="text/javascript"> 
('#myId').change(function() { 
        var abc = $(this).val(); 
        alert('The option with value ' + abc + ' was selected.'); 
        if (abc == "val1") { 
         alert('Msg1'); 
         document.getElementById("panel2").style.visibility = true; 
         document.getElementById("panel1").style.visibility = false; 
         alert('Msg2'); 
        } 
        else { 
         alert('Elseloop'); 
         document.getElementById("panel1").style.visibility =true; 
         document.getElementById("panel2").style.visibility = false; 
         alert('Elseloop2'); 
        } 
       }); 
</script> 

我也試過document.getElementById("panel1").style.display ="block";但沒有霧化+ ve結果,兩個循環中的第一個警報語句正常工作,但面板不會改變其可見性。

,而我的HTML是如下:

   <select data-placeholder="some text" id="myId" style="width: 350px;" class="chosen-select" tabindex="-1"> 
        <option value=""></option> 
        <option value="val1">Text1</option> 
        <option value="val2">Text2</option> 
        <option value="val3">Text3</option> 
        <option value="val4">Text4</option> 
       </select> 

什麼建議嗎?我犯了什麼錯誤。

回答

0

你有一個美元符號來稱呼它,並把它放在文件準備

添加$(函數(){前;及});會爲你做到這一點。

如果你想獲得該小組的ID在你的代碼,你應該嘗試從解析代碼

<script> 
    $(function(){ 
      $('#myId').change(function() { 
        var abc = $(this).val(); 
        alert('The option with value ' + abc + ' was selected.'); 
        if (abc == "val1") { 
         alert('Msg1'); 
         document.getElementById(<%= panel2.ClientID %>).style.visibility = true; 
         document.getElementById(<%= panel1.ClientID %>).style.visibility = false; 
         alert('Msg2'); 
        } 
        else { 
         alert('Elseloop'); 
         document.getElementById(<%= panel1.ClientID %>).style.visibility =true; 
         document.getElementById(<%= panel2.ClientID %>).style.visibility = false; 
         alert('Elseloop2'); 
        } 
       }); 
      }); 
</script> 
+0

我忘了我的答案類型#得到完全控制ID。使用$(「#<%= Panel1.ClientID%>」) –

+0

實際上,提問者並不試圖在面板更改上編寫函數,而不是在select上引用的變量句柄,即#myId。 – progrAmmar

+0

使用$('#myId')。change(function(){是錯誤的嗎?我不應該在這裏引用'myId'? – Rahman

0
<asp:Panel runat="server" ID="panel1"> 

<asp:Panel runat="server" ID="panel2"> 

是控件的HTML得到其應有的IDS runat="server"所以你的ID可能會像:

"ctl00_panel1" and "ctl00_panel2", change your id: 

要得到完全控制ID名稱內容控制使用的ClientID內:

$("#<%=Panel1.ClientID%>").change(function() { 
+0

「document.getElementById(」<%= ctl00_panel1.ClientID%>「)。 .visibility = true;「正在工作,但面板可見性沒有變化。我已經將面板ID更改爲」ctl00_panel1「和」ctl00_panel2「 – Rahman

+0

現在嘗試使用$(」#<%= Panel1.ClientID%>「),我忘了輸入#。 –