【问题标题】:JQuery Get Selected Item from List Box and split by commaJQuery 从列表框中获取所选项目并用逗号分隔
【发布时间】:2011-11-15 08:25:39
【问题描述】:

任何人都可以提供更多帮助吗?我在 jsfiddle 上设置了代码...

http://jsfiddle.net/justinerswell/feDTU/

我需要获取 substr 中的最后一项并向后工作以填充我需要的字段。

谢谢

原始问题

您好,我在页面上返回了一个列表框,其中包含多个结果,这些结果正在作为字符串解析到值中...

<option value="1 Corn Exchange, The Strand, RYE, East Sussex, TN31 7DB, UNITED KINGDOM">

使用 JQuery 我需要做几件事..

  1. 获取选定的值
  2. 按逗号分割所选项目的值
  3. 反向循环并为每个项目设置一个变量,即国家:英国邮政编码:TN31 7DB 等

谁能帮帮我?

谢谢

【问题讨论】:

  • 这是一种糟糕的方法。您绝对应该重新考虑导致您使用它的原因,尤其是因为每个逗号值与其标签之间没有硬性联系。为什么不能从一开始就将每个项目输出到单独的 option 项目中?
  • 很好的建议@adam-terlson 但是没有做它来自网络服务的结果这就是我所拥有的:(
  • 听起来您的网络服务需要改变。对于将来必须支持您的代码的人,即使可能是您,我感到非常抱歉。
  • 我应该向网络服务提供商询问什么?我只使用我得到的东西。谢谢你的遗憾;)
  • 您的 Web 服务应返回处理它所需的数据和元数据,并了解每一位信息是什么。在这种情况下,它可能会返回如下所示的 JSON:{ country: 'UNITED KINGDOM', postcode: 'TN31 7DB' ... }

标签: jquery html loops


【解决方案1】:

尝试 $.map() 获取列表中的所有选定项目

var selectedValues = $.map($('#ddlList option:selected'), function (element) {
        return element.value;
    }); 

【讨论】:

    【解决方案2】:

    试试这个简单的方法,调用下拉列表框的 onchange() 事件。

    函数 FuncFilter() {

         var selectedText = $("#DrpDatefilter").find(':selected').text();
         alert(selectedText );
    
        **Or** 
         var selectedValue = $("#DrpDatefilter").find(':selected').val();
         alert(selectedValue );
    
     }
    

    【讨论】:

      【解决方案3】:

      假设你使用 Html 列表框而不是试试这个

       <select id="Select1" size="4" multiple="multiple" onchange="Check(this);">
       <option value="1">item 1</option>
       <option value="2">item 2</option>
       <option value="3">item 3</option>
       <option value="4">item 4</option>
       <option value="0">All</option>
      </select>
      

      javascript

       function Check(selectObject)
        {
         var items = new Array();
         for (var i = 0, j = selectObject.options.length; i < j; i++)
         {
             if (selectObject.options[i].selected)
             {
                 items.push(selectObject.options[i].value);
             }
         }
         // selectObject.id holds the "id"
         var itemsToString = items.toString();
         alert(itemsToString);
         //split and get values.
         var s = itemsToString.split(',');
         for(var k=0; k<s.length; k++)
            {
                 alert(s[k]);
            }
      
        }
      

      乐于助人

      【讨论】:

        【解决方案4】:

        jquery 有一个选择值的选择器。

        所以使用

        var selectedValue = $('#myselect option:selected').val();
        

        然后在空间上分割

        var table = selectedValue.split(',');
        

        在你的桌子上循环

        for(i = 0 ; i < table.length; i++) {
            // dosomething with table[i]
        }
        

        【讨论】:

          【解决方案5】:

          您想在点击或提交时获取数据吗?

              $('select').click( function() {
          
                  var selected = $(this).find(':selected').text();
          
                  var substr = selected.split(',');
                  var product = substr[0];
                  var city = substr[1];
                  var postcode = substr[2];
                  var country = substr[3];
          
                  //DO SOMETHING WITH IT??
              });
          

          但这不是一个好主意,考虑到您的“数据”结构无法更改(即缺少字段等) - 因为它会破坏索引......

          【讨论】:

          • 我希望用户选择他们想要的行,然后单击一个按钮并将数据返回到我认为窗口的父窗体,打开那个位感谢答案看起来不错我会测试它@marco -约翰内森
          • 如果您需要更多帮助,只需粘贴一些 HTML :)
          • 我创建了一个 jsfiddle,因为目前有很多代码在向前循环,我需要反向循环,因为可能有 5 个元素而不是 6 个 jsfiddle.net/justinerswell/3HKgQ/1
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多