我正在为用户进行多项选择以保存最喜欢的网站。 不幸的是,我无法发布图像,应用程序无法在线工作。我将尝试解释多重选择的显示方式:
LEFT BOX(未选中的值) 右框(具有选定的值)
用户可以从左到右添加值框,这样可以正常工作。但是当他们保存时,我只能获得新选择的值。之前选择的值不会传递给表单处理器。这样我也无法确定是否从右列中删除了一个值。我希望也可以发布左框中的所有值。然后我知道数据库中可以“取消选择”哪些值。
当从左框中选择一个值时,它将从此框中消失并显示在右侧框中。
这就是表格的样子:
<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);
});
});
答案 0 :(得分:1)
即使你解决了它......但是,只是为了变化,你可以试试这个代码:
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());
}
});
});
通过这个,您可以得到2个数组,其中1个具有选定的值,另一个具有未选择的数据。
这是一个JsFiddle Demo。