2014-04-21 47 views
0

我有一個例子:提交值從<option>服務器沒有必要選擇

<select id="to_select_list" multiple="multiple" name="to_select_list"> 
    <option value="winder">Winter</option> 
    <option value="summer">Summer</option> 
    <option value="rainy">Rainy</option> 
    <option value="Spring">Spring</option> 
</select> 

而且我想,當我點擊提交,所有的期權價值將通過「to_select_list」,但被髮送到服務器不需要選擇(全部)那些。

解析:

我想出如何在link

例解決了這個問題:

的Javascript:

<script language="javascript" type="text/javascript"> 
    var selObj2 = document.getElementById(selStr2); 
    for (var i = 0; i < selObj2.options.length; i++) { 
     selObj2.options[i].selected = true; 
    } 
</script> 

HTML:

<form action="tutorial007.html" method="get" onsubmit="selectAllOptions('sel2');"> 

回答

0

如果你不想讓用戶選擇應該發送哪些選項,那麼不要給他們一個選擇控制。只需使用隱藏的輸入。

<input type="hidden" name="to_select_list" value="winder"> 
<input type="hidden" name="to_select_list" value="summer"> 
<input type="hidden" name="to_select_list" value="rainy"> 
<input type="hidden" name="to_select_list" value="Spring"> 
+0

感謝您的幫助,但我使用了我不會顯示列表框:( –

+0

@KenPlus - 選擇多個已經有一種方法來從中選擇多個項目,爲什麼要創建一個不同的UI?選擇元素不是這樣工作的!解決方案仍然是相同的,當你複製選擇的項目到另一個選擇,只需創建一個隱藏的輸入與JS在同一時間) – Quentin

+0

我也這麼認爲。也許我會找到另一種方式,謝謝:) –

0

試試這個用jQuery

var optVals=[]; 
    $("#to_select_list option").each(function(){ 
     optVals.push($(this).attr('value')); 
    }); 

不JQuery的,你可以使用這個

var option = document.getElementById('to_select_list').options; 

然後

var val0 = option[0].value; 

也可以通過AJAX的陣列發送到服務器像這樣

$.ajax({ 
     url: 'your url', 
     type: 'POST', 
     data: {optionValues: optVals }, 
     success: function (data) { 

     }, 
     Error: function() { 

     } 

    }); 
+0

(a)您沒有將數據編碼爲JSON和(b)您正在發出GET請求時,爲什麼要聲明POST數據是JSON?任何爲什麼你會首先涉及到Ajax?爲什麼你將'async'設置爲'false',這只是最差的做法! – Quentin

+0

這只是一個例子。 – Aria

+0

該代碼應該重新定義,但總的來說這是一個很好的答案。 –

相關問題