【问题标题】:How to get value of selected in ddSlick dropdown如何获取在 ddSlick 下拉列表中选择的值
【发布时间】:2013-06-08 04:44:04
【问题描述】:

我在表单中使用了一些 ddslick 下拉菜单,我想在提交该表单时获取选定的值。

已经尝试在该菜单附近创建一个隐藏输入:

<input type="hidden" name="hiddeninput" id="hiddeninput"  />

然后我将选定的值分配给该输入名称:

    $(document).ready(function() {

                //Dropdown Básico
                for (var i=0;i<10;i++){
                $('#dropdownBasico'+i).ddslick({
                    data: ddData,
                    width: 150,
                    imagePosition: "left",
                    selectText: "some texts",
                    onSelected: function(data){
                     if(data.selectedIndex > 0) {
                              $('#hiddeninput').val=selectedData.value;
                            alert(selectedData.value);
                        }  
                    }
                }); 
}

但我得到的值总是空的。请建议解决方案,并注意我这里有几个菜单(这就是我使用 for 循环来相应更改名称的原因)。我已经研究了一些类似的问题,例如:Get value of selected <option> in ddSlick dropdownddslick select options won'st post value of selected option - jquery plugin 并尝试了它们,但没有得到有效的解决方案!非常感谢!

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:
    $(document).ready(function() {
          //Dropdown Básico
          for (var i=0;i<10;i++){
          $('#dropdownBasico'+i).ddslick({
              data: ddData,
              width: 150,
              imagePosition: "left",
              selectText: "some texts",
              onSelected: function(data){
                 alert(data.selectedData.value);
              }
          }); 
    }
    

    【讨论】:

    • 而不是使用 function(selectedData.){ alert(selectedData.value); } 使用函数(数据){ 警报(data.selectedData.value); }
    【解决方案2】:

    试试这个,来源http://designwithpc.com/Plugins/ddSlick#demo

    JQUERY

    $(document).ready(function() {
        //Dropdown Básico
        for (var i=0;i<10;i++){
        $('#dropdownBasico'+i).ddslick({
            data: ddData,
            width: 150,
            imagePosition: "left",
            selectText: "some texts",
            onSelected: function(data){
             if(data.selectedIndex > 0) {
    
                    alert('Selected value: '+data.selectedIndex);
                    alert('Selected text: '+data.selectedData.text);
                    alert('Selected description: '+data.selectedData.description);
                    
                }  
            }
        }); 
    });
    

    【讨论】:

    • 不确定 displaySelectedData 是做什么的,但我试过了,没有结果。还尝试过: var ddData = $('#dropdownBasico'+i).data('ddslick'); displaySelectedData("选中的下拉数据" , ddData); $('#hiddeninput').val(ddData);相同的空白值
    • 检查这里,designwithpc.com/Plugins/ddSlick#demo No.3 - GET Selected Dropdown Option,将其替换为 alert();然后再试一次。
    • 正如我在下面评论的那样,尝试过并且不会返回任何值。我在我的代码中使用了这个 ddslick:github.com/devluis/ddslick
    • ok,还是那个,DEMOjsfiddle.net/yeyene/cYH6r,到3号,从选择框里选择,点击“获取选择”按钮,就可以看到选择的值了。跨度>
    • 所以你的意思是:$('#hiddeninput').val(ddData);应该在 POST 中返回一些数据?
    【解决方案3】:

    你设置错误的方式

     $('#hiddeninput').val=selectedData.value;
                    //---^^^^^ here
    

    在jquery中,应该是

      $('#hiddeninput').val(selectedData.value);
    

    .val() 获取指定选择器的值.. .val('test')设置

    请注意,我这里有几个菜单(这就是为什么我使用 for 循环来相应地更改名称)

    如果是这种情况,则对所有菜单使用相同的类并使用类选择器

     $('.dropdownBasicoClass').ddslick({
         ....
    

    【讨论】:

    • 实际上我首先尝试了您的建议,但它也给出了空白结果,这就是我改成“错误”的原因。我刚刚又试了一遍你提到的,还是没有得到值。
    • 您是否收到此值警报(selectedData.value);处于戒备状态??
    • 不,因为当我提交表单时,它会调用另一个php文件(这个文件我打印所有POST到一个文件中查看)。所以我认为警报会消失
    • 好的,我禁用提交以查看警报,我在警报中得到“未定义”;代码:var ddData = $('#dropdownBasico'+i).data('ddslick');alert(ddData);
    • 如果我 alert(ddData) (对于没有循环的单个案例,以消除复杂性)然后我得到:[object Obeject]。但是 displaySelectedData("2: 获取选中的下拉数据", ddData);无法显示,看来是格式错误。无论哪种方式,我都无法获得价值,你知道吗?请帮忙!
    猜你喜欢
    • 2012-12-09
    • 1970-01-01
    • 2015-02-09
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多