2

I'm trying to alert the user when the value of a select changes to a specific one, but I have multiple select in my page (one for each user).

这是我尝试过的:http: //jsfiddle.net/mEFQq/

$(document).ready(function() {
    $("select").change(function(){
        if($(this).text() == "Chef")
            {
                alert();
            }
        });
});

我希望在选择更改为“Chef”值时发出警报。

我该怎么做呢?

4

3 回答 3

5

可能是这样的:http: //jsfiddle.net/mEFQq/1/

在使用选择时,您需要使用 .val() 函数,而不是 .text() 函数。

您还需要与 value 属性(在这种情况下为 1)而不是实际的文本值进行比较。

代码如下所示:

$(document).ready(function() {
    $("select").change(function(){
        if($(this).val() == "1")
            {
                alert('value 1 (wich refers to Chef) got selected');
            }
        });
});
于 2013-04-08T22:00:31.677 回答
0

您的问题是,使用该.text()方法将返回select元素上的所有文本,而不仅仅是“选定”的文本,如果您尝试使用.val(),您将使用选定元素的value属性(如果它们没有 set value,您可以使用.val()) .

我建议您将您的更改if为: if($(this).children(':selected').text() == "Chef"),如下所示:

$("select").change(function(){
    if($(this).children(':selected').text() == "Chef")
        {
    alert();
        }
    });
});

演示:http: //jsfiddle.net/darkajax/YCznv/

于 2013-04-08T21:57:16.983 回答
0

小提琴

你可以这样做:

if($(this).find('option:selected').text() == "Chef")
于 2013-04-08T22:18:28.823 回答