我有這種形式最初有一個選擇元素,但用戶可以添加點擊'添加'時選擇的數量。然後,當用戶提交表單,並有一些無效的輸入(即未填寫的輸入)表單沒有提交(我使用PHP進行表單驗證),並且它只返回原始頁面,只顯示一個選擇,所以我使用jquery並對提交的select數組進行計數,然後像首先選擇的用戶一樣追加select元素。現在問題是如何將附加選擇的值設置爲用戶選擇的值?如何更改附加選擇元素的值
對不起,我不好解釋,這裏是代碼,希望它有助於讓更清晰的畫面:
HTML
<div class='select_container'>
<select name='select[]'>
<option value='option1'>Option1</option>
<option value='option2'>Option2</option>
<option value='option3'>Option3</option>
</select>
</div>
<div class='add'>Add</div>
JQuery的
$(document).ready(function() {
//User can add more select element by clicking 'add'
$('.add').click(function() {
$('<select name="select[]">' +
'<option value="option1">Option1</option>' +
'<option value="option2">Option2</option>' +
'<option value="option3">Option3</option>' +
'</select>').appendTo('.select_container');
});
//When form failed to submit(i.e invalid input), automatically
//add the select element as many as the user added at first
//get the user select input, make it into array
var select = "<?php $select= echo implode(',',$_POST['select']); ?>";
var select_array = select.split(',');
var select_length = select_array.length;
//after counting length of array, add the amount of select element the user added
for (i = 1; i < select_length; i++) {
$('<select name="select[]">' +
'<option value="option1">Option1</option>' +
'<option value="option2">Option2</option>' +
'<option value="option3">Option3</option>' +
'</select>').appendTo('.select_container');
}
});
我設法選擇元素追加所以當表單無法提交時,用戶不必重新添加select元素,並且我希望在表單未能提交時附加select元素自動設置爲值該用戶選擇。
我試過delegate()
,on()
和一堆其他的東西,但我仍然無法設置附加選擇元素的值。我只能在html
中設置原始第一個選擇的值。
如果有人知道一種方法來設置附加選擇的值,所有的答案和建議都受到歡迎和讚賞。
感謝
如果提交確實在PHP端失敗,您可以將這些數據存儲在會話(示例)中,並在頁面重新加載時使用它們。 – Goikiu
但我希望select元素顯示並顯示用戶選擇的項目。 (場景示例:用戶添加了3個select元素,並且他選擇了:option1,option2,option3,option1)。這將會導致錯誤,因爲選擇了重複的選項,並且它返回到表單頁面,當它返回時,我希望表單具有用戶選擇的4個選擇元素,以便他可能想要更改選項4的最後一個選項,或者用戶不必重新添加選擇並重新選擇。 – Charas