在ddSlick下拉列表中获取所选<option>的值</option>

时间:2012-12-21 18:15:17

标签: javascript jquery select drop-down-menu

目前返回undefined。注释行应该注意什么来提醒当前<option>代码的值(1,2,3或4)?

<select id="dropdown" name="dropdown">
        <option value="0" data-imagesrc="images/icons/all.png">All Questions</option>
        <option value="1" id="friends" data-imagesrc="images/icons/friends.png">Friends</option>
        <option value="2" data-imagesrc="images/icons/friends_of_friends.png">Friends of Friends</option>
        <option value="3" data-imagesrc="images/icons/network.png"><?php echo $network; ?></option>
        <option value="4" data-imagesrc="images/icons/location.png"><?php echo $location ?></option>
</select>

<script type="text/javascript">
$('#dropdown').ddslick({
showSelectedHTML: false,
    onSelected: function(selectedData){
    var str = $(this).attr('id'); // WHAT SHOULD GO HERE?
    alert(str);
    }   
});
</script>

修改

如果相关,我正在使用this plugin

也许this question可能会有所帮助。我正试图理解它。

管理以解决这个问题。最终的工作代码是:

<select id="dropdown" name="dropdown" value="hello">
        <option value="0" data-imagesrc="images/icons/all.png">All Questions</option>
        <option value="1" id="friends" data-imagesrc="images/icons/friends.png">Friends</option>
        <option value="2" data-imagesrc="images/icons/friends_of_friends.png">Friends of Friends</option>
        <option value="3" data-imagesrc="images/icons/network.png"><?php echo $network; ?></option>
        <option value="4" data-imagesrc="images/icons/location.png"><?php echo $location ?></option>
</select>

<script type="text/javascript">
$('#dropdown').ddslick({
    showSelectedHTML: false,
    onSelected: function(data){
        alert(data.selectedData.value);
    }   
});
</script>

6 个答案:

答案 0 :(得分:5)

使用$(this).val()代替$(this).attr('id')

当您在<option>元素上调用.val()时,会返回当前所选<select>的值。

答案 1 :(得分:2)

$('#dropdown').ddslick({
showSelectedHTML: false,
    onSelected: function(selectedData){
    var str = $(this).val()
    alert(str);
    }   
});

因此,请使用val()代替attr('id')

答案 2 :(得分:1)

根据插件的文档,onSelected方法获取selectedData参数:

  

selectedData(带有text,value,description,imageSrc的嵌套对象)

文本标签和值在selectedData.text函数中以selectedData.valueonSelected的形式提供。试试这个:

$('#dropdown').ddslick({
    showSelectedHTML: false,
    onSelected: function(selectedData){
        var str = selectedData.value
        alert(str);
    }   
});

答案 3 :(得分:1)

  

我懂了!!如果你想获得你在数组中设置的属性值,你得到的数值就像这样 - &gt;

$('#id').ddslick({
    data:dropdowndata,
    width:60,
    selectText: "Select Circle",
    imagePosition:"left",
    //dropdowndata[4].selected:true
    onSelected: function(selectedData){ 
    val = selectedData.selectedIndex;
    alert(dropdowndata[val].value); 

答案 4 :(得分:0)

如果你想发布数据,创建隐藏输入,使用jquery设置隐藏字段的值,然后发布隐藏字段

$('.ddslick_drop_down').ddslick({ onSelected: function(selectedData){ //set the value to a hidden field then post the hidden field $('#dish_id').val(selectedData.selectedData.value);

答案 5 :(得分:-2)

  

我从ddslick获得了选定的索引,并将值分配给单独的输入&gt; fields.t这样我可以有输入字段来控制我的表单。我现在已经编码了3个月,所以我真的不知道自己在做什么。这是一个很长的方式&gt;做它但它似乎工作...

onSelected: function(selectedData){
    alert("selectedData.selectedIndex");
    if(selectedData.selectedIndex == 1 ){
        $("#input1").html(selectedData.selectedIndex);
    }
    if(selectedData.selectedIndex == 2 ){
        $("#input2").html(selectedData.selectedIndex);
    }
    if(selectedData.selectedIndex == 3 ){
        $("#input3").html(selectedData.selectedIndex);
    }
}