如何获得选择元素的价值以及如何对变化采取行动?

jQuery中的change()事件有问题:

$("select[name=cmm]").change(function(){ total(); }); 

由于某种原因,没有使用上面的代码调用“total”函数。 HTML代码是:

   none the first the second  

我指的是错误的方式或元素? 或者以错误的方式调用函数?


更新:这里的警报function没有显示,所以我猜测永远不会调用更改事件..

 $(document).ready(function() { $("select[name=cms]").change(function(){ total(); alert($("select[name=cms]").length); }); }); 

(是的,我一直在使用doc-ready)

有关更新的问题:
确保您的代码在document.ready处理程序中运行,因此元素位于DOM中并准备就绪,如下所示:

 $(function() { $("select[name=cmm]").change(function(){ total(); }); }); 

对于上一个问题:
你错过了选择器上的第二个m ,它应该是:

 $("select[name=cmm]").change(function(){ total(); }); 

或更短:

 $("select[name=cmm]").change(total); 

对于第二个,只需直接在上使用.val()来获取值,如下所示:

 var iets = $("select[name=cmm]").val(); //or when calling .change(total) like above, inside total you can use: var iets = $(this).val(); 

当您指定option它将获取第一个 的值,而不管选择了什么。

我假设它不是cmcmm问题,并且你可能过早地分配onChange处理程序,这意味着DOM尚未初始化。

  //]]>  

你的javaScript应该在DOM准备好之后执行,所以你必须使用jQuery的document.ready事件,如下所示:

  //]]>  

或者将它放在有问题的元素之后,如下所示:

   //]]> 

因为我用来设置select元素的插件,我遇到了这个问题。 我的问题的解决方案(因为onchange函数不起作用)在这里: http : //code.google.com/p/lnet/issues/detail?id = 41