如果一个选择的值是#,则添加类#

时间:2012-02-02 19:27:31

标签: javascript jquery html select

$(document).ready(function () {      
    $("#bcscan").submit(function (e) {
        e.preventDefault();
        if($("select").val() === '#') {
            $(this).addClass("warning");
        }
        else {
            ajaxPost(); 
        }
    });

}); 

我正在使用以下功能,如果 <{strong> warning元素的值=“#”,我该如何修改它以添加类select

目前它正在为所有选择添加警告类

3 个答案:

答案 0 :(得分:3)

我认为这可能是你想要的:

$('select').filter(function() {
    return ($(this).val() === '#');
}).addClass('warning');

选择所有select元素,将其过滤到当前值等于#的元素,然后将warning类添加到该子集。


我会在这里留下原来的答案,但考虑到问题的变化,它可能不再相关。这是我最后一次猜测你想要什么 - 如果这对你有用,那很好;如果没有,哦,好吧。

$(document).ready(function () {      
    $("#bcscan").submit(function (e) {
        e.preventDefault();
        var doAjaxPost = true;
        $('select').each(function() {
            if($(this).val() === '#') {
                doAjaxPost = false;
                $(this).addClass('warning');
            }
        });
        if(doAjaxPost) {
            ajaxPost(); 
        }
    });

}); 

在提交表单时检查所有select个元素 - 如果其中任何一个元素的值为#,则会将warning类添加到该select元素。如果它们都没有值#,则它会继续并调用ajaxPost()函数。

答案 1 :(得分:2)

$('select').change(function (event) {
    if ($(this).val() === '#') $(this).addClass('warning');
});

this填充了触发事件的元素。在这种情况下,选择。

演示:http://jsfiddle.net/TimWolla/tNhKe/

编辑以匹配问题:

$(document).ready(function () {      
    $("#bcscan").submit(function (e) {
        e.preventDefault();

        var invalidCount = $('select').filter(function() {
            return ($(this).val() === '#');
        }).addClass('warning').length;

        if (invalidCount == 0) {
            alert('valid');
        }
    });

}); 

演示:http://jsfiddle.net/TimWolla/QxBH9/

答案 2 :(得分:0)

 if($("select:selected").val() == '#') {
        $("select").addClass("warning");
    }

http://api.jquery.com/selected-selector/