Javascript 验证表格';文本区域-jQuery
我正在尝试为一个应用程序开发一个插件,允许用户通过发送电子邮件邀请他们的朋友使用该应用程序。像Dropbox这样的突出功能可以让用户邀请朋友并获得额外的空间 在提交表单(textarea)并由php处理之前,我试图用JQuery(我是JQuery新手)验证表单中唯一的字段(textarea) 此文本区域将包含电子邮件地址,如果不止一个,则用逗号分隔。我甚至不确定textarea是否是我想要实现的目标的最佳选择。无论如何,这是我的表单代码:Javascript 验证表格';文本区域-jQuery,javascript,php,jquery,forms,Javascript,Php,Jquery,Forms,我正在尝试为一个应用程序开发一个插件,允许用户通过发送电子邮件邀请他们的朋友使用该应用程序。像Dropbox这样的突出功能可以让用户邀请朋友并获得额外的空间 在提交表单(textarea)并由php处理之前,我试图用JQuery(我是JQuery新手)验证表单中唯一的字段(textarea) 此文本区域将包含电子邮件地址,如果不止一个,则用逗号分隔。我甚至不确定textarea是否是我想要实现的目标的最佳选择。无论如何,这是我的表单代码: 提交 您的代码看起来可能是正确的,但您使用的是错误
提交
您的代码看起来可能是正确的,但您使用的是错误的技术。我的建议是使用它来为您处理textarea验证。也请注意。这个问题可能有很多解决方案,但您应该坚持使用简单的解决方案。我马上看到的第一个问题是:按钮标签没有type属性。您正在更改错误消息html,而不是文本。等等。我记下了一些错误:
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;
}