【问题标题】:jQuery chosen returning invalid selected datajQuery选择返回无效的选定数据
【发布时间】:2016-08-31 16:12:02
【问题描述】:

我的代码中有选择框

<select id="days" multiple>
     <option value="1" selected>Mon</option>
     <option value="2" selected>Tue</option>
     <option value="3" selected>Wed</option>
     <option value="4" selected>Thu</option>
     <option value="5">Fri</option>
     <option value="6">Sat</option>
     <option value="7">Sun</option>
</select>

现在,我需要使用 javascript 获取所有选定的值并将它们发送到 php 处理器。我试过了

var dani = $('#days').val();

var dani = $('#days').chosen().val();

但奇怪的是,只有第一次我得到用逗号分隔的正确值时,每隔一次它就会返回完整的数组 (1,2,3,4,5,6,7)

有更精确的方法吗?

还必须说,选择框在引导模式窗口中。

【问题讨论】:

  • 尝试用#days替换#dani
  • 如果不是身份问题...对我有用jsfiddle.net/tL6jq62y
  • 不是ID问题,写错问题...
  • 问题出在变量本身的某个地方:如果我重新加载页面并设法从多选中获取正确的值,如果我在另一个多选框中测试它,它会返回所有值......但是,有时即使在重新加载页面后,所有值也会出现。真不知道怎么回事……

标签: javascript jquery twitter-bootstrap jquery-chosen


【解决方案1】:

试试这个:

$(document).ready(function(){

    $("#days option:selected").each(function(){

        alert ($(this).val());
    })
})

<html>
    <title>This is test</title>
    
    <head>
    </head>
    <body>
        
        <select id="days" multiple>
         <option value="1" selected>Mon</option>
         <option value="2" selected>Tue</option>
         <option value="3" selected>Wed</option>
         <option value="4" selected>Thu</option>
         <option value="5">Fri</option>
         <option value="6">Sat</option>
         <option value="7">Sun</option>
    </select>
        
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
        <script>
            
        $(document).ready(function(){

            $("#days option:selected").each(function(){

                alert ($(this).val());
            })
        })
        </script>
    </body>
</html>

如果想要一个警报中的所有选定值:

<html>
    <title>This is test</title>
    
    <head>
    </head>
    <body>
        
        <select id="days" multiple>
         <option value="1" selected>Mon</option>
         <option value="2" selected>Tue</option>
         <option value="3" selected>Wed</option>
         <option value="4" selected>Thu</option>
         <option value="5">Fri</option>
         <option value="6">Sat</option>
         <option value="7">Sun</option>
    </select>
        
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
        <script>
            
        $(document).ready(function(){
            
            var values = "You Selected Values : ";
            var num = "";

            $("#days option:selected").each(function(){
        
                num +=$(this).val() +" ";
                
                
            })
            
            alert(values + num);
        })
        </script>
    </body>
</html>

【讨论】:

  • 感谢 m8,您的解决方案有效,但与我之前尝试过的上述示例相同,有时值是正确的,但通常会返回所有值
猜你喜欢
  • 2014-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多