Javascript 验证表格';文本区域-jQuery

Javascript 验证表格';文本区域-jQuery,javascript,php,jquery,forms,Javascript,Php,Jquery,Forms,我正在尝试为一个应用程序开发一个插件,允许用户通过发送电子邮件邀请他们的朋友使用该应用程序。像Dropbox这样的突出功能可以让用户邀请朋友并获得额外的空间 在提交表单(textarea)并由php处理之前,我试图用JQuery(我是JQuery新手)验证表单中唯一的字段(textarea) 此文本区域将包含电子邮件地址,如果不止一个,则用逗号分隔。我甚至不确定textarea是否是我想要实现的目标的最佳选择。无论如何,这是我的表单代码: 提交 您的代码看起来可能是正确的,但您使用的是错误

我正在尝试为一个应用程序开发一个插件,允许用户通过发送电子邮件邀请他们的朋友使用该应用程序。像Dropbox这样的突出功能可以让用户邀请朋友并获得额外的空间

在提交表单(textarea)并由php处理之前,我试图用JQuery(我是JQuery新手)验证表单中唯一的字段(textarea)

此文本区域将包含电子邮件地址,如果不止一个,则用逗号分隔。我甚至不确定textarea是否是我想要实现的目标的最佳选择。无论如何,这是我的表单代码:



提交
您的代码看起来可能是正确的,但您使用的是错误的技术。我的建议是使用它来为您处理textarea验证。也请注意。这个问题可能有很多解决方案,但您应该坚持使用简单的解决方案。我马上看到的第一个问题是:按钮标签没有type属性。您正在更改错误消息html,而不是文本。等等。

我记下了一些错误:

  • 此处发布的代码段缺少大括号(在末尾
  • 另外,在函数“检查电子邮件”中,您的字符串变量是什么
  • 此外,错误消息始终被指定为false,因此submit方法将始终返回true
  • 解决这些问题应该会对您有所帮助

        var array = str.split(/,\s*/);
        array.every(function(){
        if(!validateEmail(curr)){
        // email is not valid!
    return false;
        }
        })
    
    //代码来自著名的

    功能验证电子邮件(电子邮件){
    变量re=/^([^()[\]\\,;:\s@“]+(\.[^()[\]\,;:\s@“]+)*)(“+”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.]124;([a-zA Z-0-9]++]2,$);
    返回重新测试(电子邮件);
    }
    
    正如我在上面评论的那样,我将使用
    append()
    prepend()
    并只添加字段。正如在另一篇文章中提到的,客户端使用jQuery验证,但是您应该使用循环和
    filter\u var($email,filter\u validate\u email)
    来确认服务器端。下面是
    prepend()
    的一个非常基本的示例:

    
    +
    
    提交 $(文档).ready(函数(){ $(“#addEmail”)。单击(函数(){ $(“#同事”)。前缀(“”); }); });
    您好,请使用下面的js代码

      $('#emails').focusout(function(e) {
      var email_list = $('#emails').val();
      var email_list_array = new Array();
      email_list_array = email_list.split(",");
      var invalid_email_list=' ';
      $.each(email_list_array, function( index, value ) {
    
       if(!validEmail(value))
       {
         invalid_email_list=invalid_email_list+' '+value+',';
       }
      });
          console.log(invalid_email_list+' is not correct format.');
         alert(invalid_email_list+' is not correct format.');
     })
    
     function validEmail(v) {
    var r = new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?");
    return (v.match(r) == null) ? false : true;
    }
    
    如果需要检查更多的正则表达式,只需执行validEmail()函数即可。我希望这将有助于解决问题


    谢谢

    您可能希望尝试创建动态字段(例如,您单击一个
    +
    符号,它会添加一个新的文本输入字段),以便用户可以为每个字段添加一封电子邮件。可能更容易管理。你可以使用
    append()
    。我不知道为什么我的问题有负面的看法。我们来到这个网站学习和寻求帮助,我不是一个专业的程序员,但它是我的霍比,我正在努力学习尽我所能。这种类型的行为使人们在对某些事情不确定时不再询问,认为某人可能会因为你的代码被破坏而给你一个否定的观点。这就是人们首先来到这个网站的原因(因为代码被破坏并寻求帮助。对于那些试图向我展示正确路径的人,谢谢你,它帮助了我很多。谢谢你。我采用了你的方法。更容易验证。是的,我也在服务器端验证了它。
    <form id="colleagues" action="" method="POST">
        <input type="hidden" name="user" value="user" />
        <input name="emails[]" id="starter" placeholder="Email address" />
        <div id="addEmail">+</div>
        </br><span class="error_message"></span>
        <!-- Submit Button -->
         <div id="collegues_submit">                
            <button type="submit">Submit</button>
         </div>
    </form>
    <script>
    $(document).ready(function() {
        $("#addEmail").click(function() {
            $("#colleagues").prepend('<input name="emails[]" placeholder="Email address" />');
        });
    });
    </script>
    
      $('#emails').focusout(function(e) {
      var email_list = $('#emails').val();
      var email_list_array = new Array();
      email_list_array = email_list.split(",");
      var invalid_email_list=' ';
      $.each(email_list_array, function( index, value ) {
    
       if(!validEmail(value))
       {
         invalid_email_list=invalid_email_list+' '+value+',';
       }
      });
          console.log(invalid_email_list+' is not correct format.');
         alert(invalid_email_list+' is not correct format.');
     })
    
     function validEmail(v) {
    var r = new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?");
    return (v.match(r) == null) ? false : true;
    }