jQuery类选择器问题

时间:2011-02-04 08:42:54

标签: javascript jquery

我正在尝试编写一个代码,如果焦点已经将文本字段留给“强制”类,并且该字段为空,则发出警报声。

基本上,如果用户在没有写任何内容的情况下离开必填文本字段,则会提示他们。

这是我的代码,它不起作用:

    $(document).ready(function(){
        $('.mandatory').blur(function(){
            if($(this.id).val() == "")
            {
                     alert('Field:' + this.id + ' is mandatory!');
            }
        });
    });

4 个答案:

答案 0 :(得分:2)

当您使用this.id时,您正在使用this

if($(this).val() == "")
{
    alert('Field:' + this.id + ' is mandatory!');
}

解释:在事件处理程序中,this是触发事件的DOM元素。正如您从$函数的文档中看到的那样(注意jQuery函数和$函数是相同的),您可以使用DOM元素来构建jQuery选择

请注意,您可以通过放弃jQuery构造函数并仅使用this.value来进一步优化它。

答案 1 :(得分:1)

假设你正在使用jquery:

$(document).ready(function(){
    $('.mandatory').blur(function(){
        if($(this).val() == "") {
          alert('Field:' + $(this).attr('id') + ' is mandatory!');
        }
    });
});

答案 2 :(得分:1)

如果用户输入了空格

,您的代码将无法使用

使用

  

$。修剪()

代替

$(document).ready(function(){
        $('.mandatory').blur(function(){
            if($.trim($(this).val()) == "")
            {
                     alert('Field:' + this.id + ' is mandatory!');
            }
        });
    });

答案 3 :(得分:0)

猜猜你是试着这么做的

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>

<script>
$(function(){
    $('.mandatory').each(function (){
        $(this).blur(
        function(){
            if($(this).val() == ""){
                alert("empty");
            }
        })
    });

});
</script>


<div id='header'>
<input type="text" class="mandatory"/>
<input type="text" class="mandatory"/>
<input type="text" class="mandatory"/>
<input type="text" class="mandatory"/>
<input type="text" class="mandatory"/>
<input type="text" class="mandatory"/>
<input type="text" class="mandatory"/>
</div>

这是有效的