有没有办法在多选列表中发布所有值,而不仅仅是选定的值?

时间:2012-01-25 04:52:32

标签: jquery html asp.net-mvc forms

我有两个MultiSelect列表(AllProductList和SelectedProductList),AllProductList包含特定类别的所有产品,我使用JQuery从AllProductList向SelectedProductList添加/克隆选项。

我显然只希望在SelectedProductList中发布值,而不管是否 他们是否被选中。

我只在SelectedProductList周围包装了表单标签,现在需要一些方法来发布 无论是否选中,都包含其中的所有选项值。

2 个答案:

答案 0 :(得分:2)

你可以编写一些javascript来填充隐藏的表单元素,其中包含select中的所有值,如下所示,并且在服务器端只使用explode(“,”,$ _ POST [“allValues”])来获取所有选项

<script>
var hiddenValues = "";
$(document).ready(function(){
   $("#mySelect option").each(function(){
       hiddenValues = $(this).val() + ",";
   })//end each

   $("#myForm").append("<input type='hidden' name='allValues' value='"+hiddenValues+"'>")
})
</script>

显然,上面的内容依赖于jQuery,你的表单的id为myForm,你的multiselect的id为mySelect:)

编辑:
注意1:这只保存选项的值,而不保存选择的标签(也可以采用类似的方法来保存这些标签)。请牢记这一点

注意2:请注意这些值是否包含任何逗号,因为这会使您的输入无效(如果没有以某种方式转义,或者如果不使用其他分隔符)

答案 1 :(得分:1)

我无法评论,所以我想我必须回答???

波格丹的回答需要+ =

hiddenValues += $(this).val() + ",";

否则你只得到1 ......