【问题标题】:How to separate by pipe for multiple select in hidden field如何通过管道分隔隐藏字段中的多项选择
【发布时间】:2016-10-12 13:45:01
【问题描述】:

我有一个表单,它有 3 个下拉菜单可供选择,第一个下拉菜单允许用户选择特定类型,第二个框,用户必须选择一个日期,然后该日期将向用户显示过滤后的选项在 Jquery 中完成的第三个下拉菜单。我让它在用户只在第三个下拉菜单中选择一个选项的情况下工作。

现在我希望用户选择多个选项。下面的代码是我用来获取单选来更新隐藏字段并通过表单提交传递的。

下面的代码减去“.join('|')”将值输出到隐藏字段,然后通过 POST 传递到数据存储中。

这是我的代码:

$('#TopicID').on('change',function()
        {   TIDval.val( $(this).find(':selected').text().join('|') );
        });

如果我删除“.join('|')”,我尝试了几个版本让它工作,输出给了我所有连接的值。

值 1:树 价值2:船 价值3:汽车

输出如下:treeboatcar

但我需要:树|船|汽车

我已更新我的新代码,以反映在此线程中加载...建议的解决方案到以下内容。

$('#TopicID').change(function(){
               var selectedText = $(this).find(':selected').map(function(){
                   return $(this).text(); //$(this).val()
                     }).get().join('|');

               $("#TopicID_value").text(selectedText);
            });

现在使用管道分隔值正确更新隐藏字段值,但在表单中提交时,该值不再在 POST 调用中传递。

隐藏字段

在萤火虫中,当我选择一个或多个选项时,我看到值正在正确更新,但由于某种原因,该值在提交过程中丢失了。我看不出有什么不同。

【问题讨论】:

    标签: javascript jquery select hidden-field multiple-select


    【解决方案1】:

    使用map()

    $('#TopicID').change(function(){
       var selectedText = $(this).find(':selected').map(function(){
           return $(this).text(); //$(this).val()
       }).get().join('|');
       console.log(selectedText);
    });
    

    $('#TopicID').change(function(){
    var selectedText = $(this).find(':selected').map(function(){
       return $(this).text(); //$(this).val()
    }).get().join('|');
    console.log(selectedText);
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <select id="TopicID" multiple="true">
     <option id="1">ABC</option>
     <option id="2">XYZ</option>
     <option id="3">PQR</option>
    </select>

    【讨论】:

    • 我意识到我实际上有你的版本,但我使用了 .val() 它返回了我需要文本的值。所以我以为我做错了。
    • 解决方案根据需要输出正确的值,但不再回发。尽管我可以看到隐藏字段中的值更新得很好,但当他们提交表单时,该值最终为空。
    • 你能更新你的问题以了解确切的问题吗?
    • 为了更清晰,我添加了更多信息。您的解决方案工作和输出以及更新隐藏的值字段,但现在由于某种原因它不再在表单提交期间被传递。我最初发布的代码是我用来更新单个选项并通过的代码。我很困惑现在它不再传递值有什么区别
    • 我发现了使用 .text() 而不是 .val() 输出的问题。它适用于我的原始实例,但不适用于这个实例。
    猜你喜欢
    • 2018-02-25
    • 1970-01-01
    • 2017-12-24
    • 2015-02-15
    • 2012-02-19
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多