呈現頁面時,多選的val()
設置爲單個值。例如,$("#my_select_box").val(1);
然後用戶在多選框中選擇一個附加值。Html:對於選擇多個,僅提交一個值,但.val()返回包含兩個值的數組
提交表單時,只會提交新選定的值,而不是之前設置的值。而在Firefox中進行調試時,.val()
函數會返回一個包含兩個值(前一個和新選擇的值)的數組。爲什麼會發生?
呈現頁面時,多選的val()
設置爲單個值。例如,$("#my_select_box").val(1);
然後用戶在多選框中選擇一個附加值。Html:對於選擇多個,僅提交一個值,但.val()返回包含兩個值的數組
提交表單時,只會提交新選定的值,而不是之前設置的值。而在Firefox中進行調試時,.val()
函數會返回一個包含兩個值(前一個和新選擇的值)的數組。爲什麼會發生?
那麼,沒有代碼,我們無法確定。但是當你想要傳入多個參數時,你必須給出該輸入的名稱值[]括號。防爆。 「name []」,以便服務器知道事實上有兩個值。
很難說沒有代碼就做什麼。
但是,如果你想兩者所標記selected
的option
,並選擇了另一個,你可以通過以下方式訪問它們:
option[selected="selected"]
了你設置
和
option:selected
的一個用戶選擇的那個
所以像這樣...
$('#submit').click(function(){
var s = $('#my_select_box option[selected="selected"]').val();
var t = $('#my_select_box option:selected').val();
alert("Set: " + s + ", Chosen: " + t);
});
如果您在PHP編程,問題出在那裏。當使用多重選擇輸入時,PHP要求輸入名稱後有一對空括號。例如:
<select name="select[]" multiple="multiple">
,而不是僅僅
<select name="select" multiple="multiple">
如果您不能或不會做這(也許你沒有訪問底層HTML),那麼你可以捕捉或者POST數據是這樣的:
$data_from_post = file_get_contents("php://input");
var_dump($data_from_post);
,你會看到這樣的字符串,您可以使用:
select=one&select=two&select=three&button=submit