2011-10-14 28 views
2

在我的apsx頁面中,我有一個列表框(techGroups),其中包含一些預先選定的項目。用戶可以更改選擇。同時,我有一個重置按鈕。當用戶點擊重置按鈕時,列表框將被選中的預選項恢復,而其他的則不會。如何使用數組提供的值在列表框中選擇項目?

我爲重置按鈕的onclientclick編寫了以下javascript函數。不知何故,我點擊重置按鈕後,只有第一個預選項目被選中,其他所有預選項目都沒有。

reset() 
{ 
     var selectedGroups = hiddenfield1.value.split(","); //i saved those preselected items in a hiddenfield 
     for (var i = 0; i < techGroups.options.length; i++) { 
      for (var j = 0; j < selectedGroups.length; j++) { 
       if (techGroups.options[i].value == selectedGroups[j]) { 
        techGroups.options[i].selected = true; 
       } 
      } 
     } 
} 

任何人都可以幫我看看我的代碼,並告訴我什麼是錯的嗎?謝謝。

+0

感謝您的幫助。我發現這是因爲打字錯誤,我應該把split(「,」),我錯過了一個空間。 – GLP

回答

0

可能是參考問題(DOM)。試試這個,

的JavaScript:

<script type="text/javascript"> 
window.onload = function() { 
    var btnReset = document.getElementById("btnReset"); 
    btnReset.onclick = function() { 
     var hid1 = document.getElementById("hiddenField1"); 
     var techGroups = document.getElementById("techGroups"); 

     var selectedGroups = hid1.value.split(","); //i saved those preselected items in a hiddenfield 

     for (var i = 0; i < techGroups.options.length; i++) { 
      for (var j = 0; j < selectedGroups.length; j++) { 
       if (techGroups.options[i].value == selectedGroups[j]) { 
        techGroups.options[i].selected = true; 
       } 
      } 
     } 
    }; 
}; 
</script> 

標記:

<form id="form1" runat="server"> 
<div> 
    <input type="hidden" id="hiddenField1" value="aa,bb,cc" /> 
    <select id="techGroups" size="4" multiple="multiple"> 
     <option value="rr">rr</option> 
     <option value="aa">aa</option> 
     <option value="cc">cc</option> 
     <option value="zz">zz</option> 
     <option value="bb">bb</option> 
     <option value="dd">dd</option> 
    </select> 
    <input type="button" id="btnReset" value="Reset" /> 
</div> 
</form> 
1

jQuery的允許?如果是的話,請看看它在這裏工作(如果沒有,請disconsider):

http://jsfiddle.net/sW8HX/4/

+0

很高興知道如何在JQuery中做到這一點。謝謝。 – GLP

相關問題