尝试在没有submit()按钮的情况下添加jQuery验证

尝试在没有submit()按钮的情况下添加jQuery验证,jquery,html,validation,Jquery,Html,Validation,下面是我的代码。我想做的是添加验证,这样当用户点击一个输入字段时,验证消息“name required”就会显示出来。然而,在这一分钟,它就在输入字段的下方,并且一直在那里。多谢各位 $(文档).ready(函数(){ if($('#firstname').val()=''){ $('.errorMsg').show(); }否则{ $('.errorMsg').hide(); } }); 名字 您可以使用blur事件: $(文档).ready(函数(){ $('#firstname')。

下面是我的代码。我想做的是添加验证,这样当用户点击一个输入字段时,验证消息“name required”就会显示出来。然而,在这一分钟,它就在输入字段的下方,并且一直在那里。多谢各位

$(文档).ready(函数(){
if($('#firstname').val()=''){
$('.errorMsg').show();
}否则{
$('.errorMsg').hide();
}
});

名字

您可以使用
blur
事件:

$(文档).ready(函数(){
$('#firstname')。在('blur',function()上{
if($('#firstname').val()=''){
$('.errorMsg').show();
}否则{
$('.errorMsg').hide();
}
});
});

名字
所需名称

使用
blur
事件,可以使用jQuery直接从找到的元素调用该事件

$(document).ready(function(){

    $('.errorMsg').hide();

    $('#firstname').blur(function(){
    if($('#firstname').val() == ''){
        $('.errorMsg').show();
    }
        else{ 
            $('.errorMsg').hide();
        }

    });


});

下面是一个

使用CSS最初隐藏错误消息。您还有无效的HTML:错误消息
span
不能嵌套在输入中

工作解决方案:

$(文档).ready(函数(){
$('#firstname')。在('blur',function()上{
if($(this.val()=''){
$('.errorMsg').show();
}否则{
$('.errorMsg').hide();
}
});
});
.errorMsg{
显示:无;
颜色:红色;
}

名字
Name required
-将事件处理程序绑定到“blur”JavaScript事件,或在元素上触发该事件

试试()

var firstNameInput=$('input#firstname'),
errorMsgEl=$('.errorMsg');
//在“first name”的输入上绑定模糊
firstNameInput.bind('blur',函数(){
//检查输入是否为空
if(firstNameInput.val()=''){
//确保尚未显示错误
如果(errorMsgEl.length==0)$(“需要名称”).insertAfter(此);
}否则{
errorMsgEl.remove();
}
});

如果这是针对实际应用程序的,我还建议不要使用
maxlength
-属性。人们的名字往往比大多数网络开发者的名字更有趣imagine@OliverBaumann但是如果数据库只接受15,那么它可能会引起一些麻烦。但是我同意15个字符是一个很低的名字。@Ivar,如果数据库只接受15个varchar,请与数据库管理员联系;-)老实说,这不是争论。显然,没有冒犯的意思@奥利弗伯曼没有被带走。仅仅说使用
maxlength
本身并不是一件坏事。无论您在数据库中接受多少,总有一个限度。
var firstNameInput = $('input#firstname'),
    errorMsgEl = $('.errorMsg');

// Bind blur on the input for 'first name'
firstNameInput.bind('blur', function () {
    // Check if input is blank
    if(firstNameInput.val() == '') {
        // Ensure error isn't already displayed
        if (errorMsgEl.length == 0) $("<div class='errorMsg'>Name required</div>").insertAfter(this);
    } else {
        errorMsgEl.remove();
    }
});