Javascript 如何使用jQuery验证表单?
我试图在其他问题中找到答案,但实际上没有任何效果--不知怎的,我讨厌JavaScript。。。无论如何我的代码如下所示:Javascript 如何使用jQuery验证表单?,javascript,jquery,validation,Javascript,Jquery,Validation,我试图在其他问题中找到答案,但实际上没有任何效果--不知怎的,我讨厌JavaScript。。。无论如何我的代码如下所示: function validate() { if ($(":input").length == 0) { $(":input").addClass("notvalid"); return false; } else { $(":input").removeClass("notvalid"); return true; } return tr
function validate()
{
if ($(":input").length == 0)
{
$(":input").addClass("notvalid");
return false;
}
else
{
$(":input").removeClass("notvalid");
return true;
}
return true;
}
$(":input").blur(validate());
$(":input").keyup(validate());
$("#customForm").submit(function(){
if(validate()){
return true;
}
else
{
return false;
}
});
我只想测试每个标记是否为空。测试应在焦点丢失时或在每种键类型之后进行。当然,在点击提交按钮之后
它不起作用。Firefox错误控制台显示类似于:未知伪类或伪元素“输入”。这意味着什么?错误表明jQuery不知道使用
:input
选择哪些元素。只需将选择器中的:input
替换为input:text
。你也可以看看这个插件,它可以简化你的验证逻辑。有很多方法可以帮助你开始
更新:
我的错误。根据文档,有一个选择器。错误表明jQuery不知道使用
:input
选择哪些元素。只需将选择器中的:input
替换为input:text
。你也可以看看这个插件,它可以简化你的验证逻辑。有很多方法可以帮助你开始
更新: 我的错误。根据文档,有一个选择器。而不是:
function validate()
{
if ($(":input").length == 0)
{
$(":input").addClass("notvalid");
return false;
}
else
{
$(":input").removeClass("notvalid");
return true;
}
return true;
}
使用:
而不是:
function validate()
{
if ($(":input").length == 0)
{
$(":input").addClass("notvalid");
return false;
}
else
{
$(":input").removeClass("notvalid");
return true;
}
return true;
}
使用:
如果你已经在使用jQuery,你应该像Darin说的那样使用jQuery.validate插件
这将使您的代码更清晰,更容易添加标准验证规则,如有效电子邮件、URL、最小长度、最大长度等。还消除了在“为您而做”时添加和删除类的需要。如果您已经在使用jQuery,您应该真正使用jQuery.validate插件,如Darin所说
这将使您的代码更清晰,更容易添加标准验证规则,如有效电子邮件、URL、最小长度、最大长度等。此外,您无需在“为您而做”时添加和删除类。如果您更熟悉像PHP这样的服务器端脚本,您可以始终使用AJAX验证字段 回到JS这里,我认为您想要完成的是:
$("input:text").bind("blur, keyup", function(){
if($(this).val().length > 0){
//Valid not empty
$(this).removeClass("notvalid");
}else{
//invalid empty
$(this).addClass("notvalid");
}
});
$("#customForm").submit(function(){
$("input:text").keyup(); //triggers the keyup event on input fields
//which then validates your fields according the
//code above.
if($("form .notvalid").length > 0){
//You got some invalid fields in form
return false;
}else{
//All fields are valid continue
return true;
}
}))
它可能看起来与您的方法完全不同,但如果您想学习jQuery,最好熟悉它。我对其中一些过程进行了评论,但如果您对上面代码中使用的方法或函数有任何疑问,请使用谷歌搜索。祝你好运 如果您更熟悉像PHP这样的服务器端脚本,您可以始终使用AJAX来验证字段 回到JS这里,我认为您想要完成的是:
$("input:text").bind("blur, keyup", function(){
if($(this).val().length > 0){
//Valid not empty
$(this).removeClass("notvalid");
}else{
//invalid empty
$(this).addClass("notvalid");
}
});
$("#customForm").submit(function(){
$("input:text").keyup(); //triggers the keyup event on input fields
//which then validates your fields according the
//code above.
if($("form .notvalid").length > 0){
//You got some invalid fields in form
return false;
}else{
//All fields are valid continue
return true;
}
}))
它可能看起来与您的方法完全不同,但如果您想学习jQuery,最好熟悉它。我对其中一些过程进行了评论,但如果您对上面代码中使用的方法或函数有任何疑问,请使用谷歌搜索。祝你好运 我认为jquery.com上的jquery文档是正确的。我试过了,现在“text”这个词不被识别……我认为jquery.com上的jquery文档是正确的。我试过了,但现在“文本”这个词不被识别……更好的方法,谢谢。有趣的是,简单的“输入”不会在控制台中产生任何错误。无论如何现在他对jquery本身有一些问题。有些元素“d”没有定义,或者什么都没有定义……更好的方法,谢谢。有趣的是,简单的“输入”不会在控制台中产生任何错误。无论如何现在他对jquery本身有一些问题。某个元素“d”未定义或其他任何内容。。。