我正在为用户提供多个选择,以保存最喜欢的站点。不幸的是,我无法发布一张图片,而且应用程序也无法在线运行。我将尝试解释如何显示多个select:
左框(值未被选中)右框(所选值)
用户可以从左到右添加值,这是很好的。但是,当它们保存时,我只能得到新的选定值。前面选择的值不会传递给表单处理器。这样,我也无法确定一个值是否从正确的列中删除。我希望所有的值从左框也张贴。然后,我知道哪些值可以在数据库中“未选中”。
当从左侧框中选择值时,它将从此框中消失并显示在右侧框中。
这就是表单的样子:
<select multiple name="main_categories_1[]" class="multiselect" id="select1">
<option value="26">SAP</option>
<option value="29">SEO</option>
<option value="22">Servicemanager</option>
<option value="28">SharePoint</option>
<option value="34">Stages</option>
<option value="6">Systeembeheerder</option>
<option value="5">Tester</option>
<option value="31">UIDesigner</option>
<option value="35">Zend Dev</option>
</select>
所以,澄清一下。我确实得到了新选择的值,我没有得到未选择的值和已经被选中的值。我也想要未选择的值。
编辑
好了,解决了。正如ejrowley所说,我需要用javascript选择所有的“选定”值。是这样做的:
$(document).ready(function() {
$('#saveAccount').submit(function() {
$("#select2").find('option').attr('selected',true);
});
});
发布于 2013-06-03 07:17:48
即使你解决了它..。但是,为了多样性起见,您可以尝试以下代码:
var selected = [];
var noselected = [];
$(document).on('click', '#button', function (){
$.each($('#select2 option'), function (key, value) {
if (!$(this).prop('selected')) {
noselected[key] = $(this).val();
//alert($(this).val());
} else {
selected[key] = $(this).val();
//alert($(this).val());
}
});
});
这样就可以得到两个数组,一个数组具有选定的值,另一个数组具有非选定值。
这是一个JsFiddle Demo。
https://stackoverflow.com/questions/16898688
复制