Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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 请提供一个联系人表单验证程序脚本的小帮助_Javascript_Validation_Contact Form - Fatal编程技术网

Javascript 请提供一个联系人表单验证程序脚本的小帮助

Javascript 请提供一个联系人表单验证程序脚本的小帮助,javascript,validation,contact-form,Javascript,Validation,Contact Form,我有此电子邮件表单验证脚本: <script type="text/javascript" language="javascript"> function validateForm(thisform){ if(thisform.Name.value=="") { alert("Ooouuupppsss... You did not enter your Name."); thisform.Name.focus(); return fal

我有此电子邮件表单验证脚本:

    <script type="text/javascript" language="javascript">  
function validateForm(thisform){  
 if(thisform.Name.value=="") {  
   alert("Ooouuupppsss... You did not enter your Name.");  
   thisform.Name.focus();  
   return false;  
 }  
 if(thisform.Email.value=="") {  
   alert("Ooouuupppsss... You did not enter a valid Email Address.");  
   thisform.Email.focus();  
   return false;  
 }  
 if(thisform.Subject.value=="") {  
   alert("Ooouuupppsss... You did not enter your Subject.");  
   thisform.Subject.focus();  
   return false;  
 }  
 if(thisform.Message.value=="") {  
   alert("Ooouuupppsss... You did not enter your Message.");  
   thisform.Message.focus();  
   return false;  
 }  
}</script>  

函数validateForm(thisform){
如果(thisform.Name.value==“”){
警报(“Ooouuuppss…您没有输入您的姓名。”);
thisform.Name.focus();
返回false;
}  
如果(thisform.Email.value==“”){
警报(“ooouuuppss…您没有输入有效的电子邮件地址。”);
thisform.Email.focus();
返回false;
}  
如果(thisform.Subject.value==“”){
警告(“Ooouuuppss…您没有输入您的主题。”);
thisform.Subject.focus();
返回false;
}  
如果(thisform.Message.value==“”){
警报(“ooouuuppss…您没有输入您的消息。”);
thisform.Message.focus();
返回false;
}  
}  
有人能告诉我,为了让用户输入一个有效的电子邮件地址,我必须在这个脚本中添加什么。此外,我想在其余的领域,让用户输入文本(而不是链接)

我曾尝试添加我在不同网站上找到的不同代码片段,但它们不起作用,这是因为我不确定我添加的代码是否正确

谢谢你阅读我的请求

祝你一切顺利,
Andi

有关正则表达式URL,请参见本文:

有关电子邮件验证,请参阅本文:

有关X浏览器事件侦听的信息,请参见此项,如果要使用jQuery,ie8将使用attach,请参见此项:

我建议通过表单输入进行循环,并检查其电子邮件和是否未针对链接运行正则表达式

(function(){ 
var validateForm = function(form){
    var errors = [], inputs = form.getElementsByTagName('input');
    for(var input = 0; input<inputs.length; input++){
        var currentInput = inputs[input];
        if(currentInput.value === ''){
            // handle attributes here for error message, push error message
            if(currentInput.attribute('name') === 'email'){
                // handle email
                // push error message
            }
        }
    }
    return errors; 
}

var contactForm = document.getElementById('contact');
contactForm.addEventListener('submit', function(e){ 
    var errorMessages = validateForm(contactForm);
    if(errorMessages.length === 0){

    } else {
        e.preventDefault() // stop the form from submitting
        // handle your messages 
    }
}
}());
(函数(){
var validateForm=函数(形式){
var errors=[],inputs=form.getElementsByTagName('input');

对于(var input=0;input对于电子邮件检查,在检查电子邮件是否为空后,您可以在else部分中使用以下代码

function validateForm(){
    var email = document.getElementById("email").value;
    var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
    if (email.search(emailRegEx) == -1) {
        alert("e-mail is not valid");
        return false;
    }
}
对于具有相同逻辑的url,可以使用以下正则表达式

var urlRegEx = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/;
下面是一个基于您的工作的工作示例,您可以改进此代码—它只是为了向您展示它应该是什么样子

    function validateForm(thisform){  
        if(thisform.Name.value=="") {  
            alert("Ooouuupppsss... You did not enter your Name.");  
            thisform.Name.focus();  
            return false;  
        }  
        else{
            var name = thisform.Name.value;
            if (!checkURL(name)) {
                alert("name cannot be a url");
                return false;
            }
        }
        if(thisform.Email.value=="") {  
           alert("Ooouuupppsss... You did not enter a valid Email Address.");  
           thisform.Email.focus();  
           return false;  
        }  
         else{
            var email = thisform.Email.value;
            var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
            if (email.search(emailRegEx) == -1) {
                alert("e-mail is not valid");
                return false;
            }
        }
         if(thisform.Subject.value=="") {  
           alert("Ooouuupppsss... You did not enter your Subject.");  
           thisform.Subject.focus();  
           return false;  
        }
            else{
                if (!checkURL(thisform.Subject.value)) {
                    alert("subject cannot contain a url");
                    return false;
                }
            }
         if(thisform.Message.value=="") {  
           alert("Ooouuupppsss... You did not enter your Message.");  
           thisform.Message.focus();  
           return false;  
        }  
        else{
            if (!checkURL(thisform.Message.value)) {
                alert("message cannot contain a url");
                return false;
            }
        }
    }
    function checkURL(url){
        var urlRegEx = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/;
        if (url.search(urlRegEx) == -1) {
            return true;
        }
        return false;
    }

非常感谢您的回答。在我看来,您的回答似乎是一个很好的选择。不幸的是,我在这个领域非常新,我无法找到如何将您的代码包含在我的代码中,我已经尝试了好几次,但我只得到了错误。我非常确定,有一些事情我做得不对。我在后面添加了一个“其他”部分“如果电子邮件是空的”部分,请咨询w3school.com如何做到这一点,但仍然不起作用:(如果你有空闲时间,你能帮我吗?再次非常感谢!我添加了一个工作示例,如果这不起作用,你也应该发布你的htmlOK,我添加了你给我的代码,不幸的是它不起作用。是否可能是因为.php文件将联系人表单中的信息重定向到我的电子邮件中?thphp文件还包含一个小JavaScript,在提交表单后,它会创建一个带有“谢谢”消息的小窗口。我几乎可以肯定HTML代码是正确的,因为在我将其他命令添加到我在第一篇文章中插入的JavaScript之前,一切都正常工作。再次感谢:)我真的很抱歉,我的问题再次困扰您。如果html部分没有问题,请尝试使用警报调试代码。也许您可以找到损坏的部分。