Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery验证表单?_Javascript_Jquery_Validation - Fatal编程技术网

Javascript 如何使用jQuery验证表单?

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

我试图在其他问题中找到答案,但实际上没有任何效果--不知怎的,我讨厌JavaScript。。。无论如何我的代码如下所示:

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”未定义或其他任何内容。。。