.change(function(){更改选择菜单的选项后不会提示选项值

时间:2013-03-25 12:04:48

标签: jquery clone onchange select-menu

以下调用函数在更改选择菜单的选项后不会提示选项值:

不提醒:

<script type="text/javascript">
jQuery(document).ready(function($){       
    $(".selectmenu").scrollectBox({                           
        preset: 'dropdown',
        numVisibleOptions: 4,
        scrollInterval: 150, 
        scrollOn: 'hover',
        listWidth: 160,
        onSelectEvent: null

}).change(function() {
   var optionvalue = $("select.selectmenu").val(); 
   alert('Selected value ' + optionvalue);     
 });
});

</script>

但以下更改功能独立发出警告

提醒:

<script type="text/javascript">
   jQuery(document).ready(function($){    
      $(".selectmenu").change(function() {
       var optionvalue = $("select.selectmenu").val(); 
     alert('Selected value ' + optionvalue);        
     });
    });
</script>

    <select onchange="" name="selectmenu" id="translator" class="selectmenu" >
     <option value="Select Language">Select The Language</option>
     <option value="en|af">Afrikaans</option>
     <option value="en|sq">Albanian</option>
     </select>

如何从第一段代码中获取警报?请注意,第一个代码块中的onSelectEvent:是用于选项更改的自定义触发事件。

感谢,

5 个答案:

答案 0 :(得分:3)

您的第一个代码不会alert,因为您要将change事件分配给document而不是下拉。

编辑:评论回复

插件有以下两个option使用它。

  

onSelectEvent

     

用于处理选项选择的自定义事件处理程序。该功能可以采用两个参数;单击对象(选项内的链接)和点击事件,例如:var customSelectHandler = function($obj, event){...};。默认值为null。

     

onSelectFunc

     

将从默认处理程序(开头)中调用的函数。该功能可以采用两个参数;单击对象(选项内的链接)和点击事件,例如:var extraFunc = function($obj, event){...};。默认值为null。

答案 1 :(得分:2)

试试这个:

jQuery(document).ready(function($){ 
   $(".selectmenu").scrollectBox({                           
      preset: 'dropdown',
      numVisibleOptions: 4,
      scrollInterval: 150, 
      scrollOn: 'hover',
      listWidth: 160,
      onSelectEvent: null
  }).change(function() { //<-------------------------------try it here.
     var optionvalue = $("option:selected", this).val();
     alert('Selected value ' + optionvalue); 
  });
});

答案 2 :(得分:2)

您希望将事件附加到选择框而不是文档。

jQuery(document).ready(function($){       
    $(".selectmenu").scrollectBox({                           
        // ...
    }).change(function() {
        var optionvalue = $("select.selectmenu").val(); 
        alert('Selected value ' + optionvalue); 
    });;    
})

jQuery&#39;流利&#39;语法总是返回您正在使用的对象,因此您可以将方法链接在同一个选择器上。

您还没有获得所选选项的值,正如Jai所建议的那样:

var optionvalue = $("option:selected", this).val();

答案 3 :(得分:1)

您的第一个代码应该是这样的:

<script type="text/javascript">
    jQuery(document).ready(function($){       
        $(".selectmenu").scrollectBox({                           
            preset: 'dropdown',
            numVisibleOptions: 4,
            scrollInterval: 150, 
            scrollOn: 'hover',
            listWidth: 160,
            onSelectEvent: null
       });    

        $(".selectmenu").change(function() {
           var optionvalue = $("select.selectmenu").val(); 
         alert('Selected value ' + optionvalue);        
         });

     });
    </script>

------------------------- EDITED --------------------- -----------

脚本:

<script>
    $(document).ready(function () {
           var selectEvent = function($el){
            alert("You chose " + $el.html());
                return false;
            };
         $(".selectmenu").scrollectBox({                           
           preset: 'select',
            numVisibleOptions: 3,
            scrollOn: 'scroll',
            debug: true,
            onSelectEvent: selectEvent

         }); 
    });
</script>

HTML:

 <select name="selectmenu" class="selectmenu" >
        <option>Select The Language</option>
        <option value="en|af">Afrikaans</option>
        <option value="en|sq">Albanian</option>
 </select>

PS:在localhost上测试:)

它不起作用,因为您对文档更改有警报而不是在选择菜单中更改;)

Saludos。

答案 4 :(得分:0)

你有一个额外的})右括号

  $(".selectmenu").scrollectBox({                           
    preset: 'dropdown',
    numVisibleOptions: 4,
    scrollInterval: 150, 
    scrollOn: 'hover',
    listWidth: 160,
    onSelectEvent: null
});   
}).change(function() {
//^here..
   var optionvalue = $("select.selectmenu").val(); 
 alert('Selected value ' + optionvalue); 

 });

应该是

 $(".selectmenu").scrollectBox({                           
    preset: 'dropdown',
    numVisibleOptions: 4,
    scrollInterval: 150, 
    scrollOn: 'hover',
    listWidth: 160,
    onSelectEvent: null

 }).change(function() {....