0

我的网站上有两个select标签。当我尝试在一个select标签中获取所选项目的文本时,我看到它返回了两个select标签的两个文本,即使我通过类属性指定了从哪个选择中检索数据。

我的代码是

$('select.select').change(function(e) {

e.preventDefault(); 
var val1 = $(' option:selected').text();
alert(val1);


});

$('select.select2').change(function(e) {

e.preventDefault(); 

var val2 = $(' option:selected').text();
alert(val2);


});

警报始终包含select连接的两个标签的文本。

感谢您通常的帮助。

4

4 回答 4

1

也许更新选择器以指定选择的上下文:

$('select.select').change(function(e) {

  e.preventDefault(); 
  var val1 = $('option:selected', this).text();
  alert(val1);

  return false;

  });

选择器$('option:selected', this)将返回在更改元素的上下文中找到的值。

于 2013-04-28T17:55:48.273 回答
1

正因为$('option:selected').text();如此,您的页面中有两个选定的选项,所以它返回两个值。

于 2013-04-28T17:58:13.983 回答
1

你需要这样做:

// Call the change event for the select
$('select.select').change(function (e) {

    e.preventDefault();

    // Get the selected option for the select in current scope
    var text = $(this).find('option:selected').text();
    alert(text );

    //return false;   No need of this, as we already called the preventDefault() method
});
于 2013-04-28T18:03:24.173 回答
1

您需要在检索值时指定类:

var val1 = $('.select option:selected').text();

var val2 = $('.select2 option:selected').text();
于 2013-04-28T18:10:30.377 回答