jQuery选择更改事件

时间:2011-12-05 17:58:30

标签: javascript jquery

我试图根据使用jQuery从<select>元素中选择的值来触发警报:

$("#optiontype").change( function () {
        var option = $("#optiontype").val();
        if(option.Contains("Forward")){
            alert("forward selected");
        }
    });

每当我从<select>元素中选择“前进”时,警报就不会触发。

3 个答案:

答案 0 :(得分:9)

改变是正确的事件。问题是在这种情况下包含不正确。包含用于DOM遍历。你需要在这里使用的只是一个正常的比较,如下:

$("#optiontype").change( function () {
    var option = $("#optiontype").val();
    if(option.toLowerCase() == "forward"){
        alert("forward");
    }
});

或者如果字符串不仅包含“forward”,请查看indexOf:http://www.w3schools.com/jsref/jsref_indexof.asp

答案 1 :(得分:2)

您应该使用option.indexOf("forward") != -1

答案 2 :(得分:1)

$("#optiontype").change( function () {
        var option = $("#optiontype").val();
        if(option.toLowerCase()=="forward"){
            alert("forward selected");
        }
    });

即如果您获得select元素的实际值,而不是文本。看到差异:

<select id="optiontype" type="multiple">
 <option value="forward">forwardtext</option>
</select>

如果您正在寻找文本,请使用:

$("#optiontype").change( function () {
        var option = $("#optiontype option:selected").text();
        if(option.toLowerCase()=="forwardtext"){
            alert("forward selected");
        }
    });
相关问题