【问题标题】:Is there a way to post all values in a multiselect list and not just the selected ones?有没有办法在多选列表中发布所有值而不仅仅是选定的值?
【发布时间】:2012-02-18 08:35:01
【问题描述】:

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

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

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

【问题讨论】:

  • 在提交之前以编程方式选择它们。
  • 是的,这听起来更合理,更轻松

标签: jquery html asp.net-mvc forms


【解决方案1】:

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

博格丹的回答需要+=

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

否则你只会得到 1...

【讨论】:

    【解决方案2】:

    您可以编写一些 javascript,用来自选择的所有值填充隐藏的表单元素,如下所示,在服务器端只需使用 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,而您的多选的 id 为 mySelect :)

    编辑:
    注意1:这仅保存选项的值,而不是选择中的标签(也可以使用类似的方法来保存它们)。请记住这一点

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

    【讨论】:

    • 我将#mySelect 选项更改为#mySelect 选项,它对我有用。谢谢:)
    • 你说得对,应该是“选项”,我会把它添加到我的答案中
    猜你喜欢
    • 1970-01-01
    • 2019-06-14
    • 2013-02-15
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 2011-12-24
    相关资源
    最近更新 更多