Javascript 如何使一个简单的HTML发送消息并运行验证

Javascript 如何使一个简单的HTML发送消息并运行验证,javascript,html,Javascript,Html,我想我的网页已经基本完成了逻辑,现在唯一的问题是发送按钮不会执行javascript警报功能 以下是我的HTML代码: <body> <h1>Send us a message</h1> <form name = "info"> Name: <input type = "text" id = "inf" name = "name" placeholder="Enter a valid name" >*</br></br

我想我的网页已经基本完成了逻辑,现在唯一的问题是发送按钮不会执行javascript警报功能

以下是我的HTML代码:

<body>
<h1>Send us a message</h1>
<form name = "info">
Name: <input type = "text" id = "inf" name = "name" placeholder="Enter a valid name" >*</br></br>
Email Address: <input type="email" id = "inf" name="email" placeholder="Enter a valid email address" >*</br></br>
Phone Number: <input type = "tel" id = "inf" name ="PN"  placeholder="Enter a valid phone number" >*</br></br>
<textarea name="Text1" cols="40" rows="5" placeholder="Write Your Message Here..."></textarea><br><br>
<input type ="button" value = "Send" onclick="alert()">
</form>
</body>
以下是我的Javascript代码:

<script type = "text/javascript">
function ValEntry(){
    var valid = true;

    if ( document.info.name.value== ""||document.info.email.value== ""||document.info.PN.value == "" )
    {
        alert ( "Please fill up the remaining text boxes" );
        valid = false;
    }
    return valid;
}

function checkemail(){
    var testresults1
    var str=document.info.email.value
    var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i

    if (filter.test(str))
    testresults1=true
    else{
    alert("Please input a valid email address!")
    testresults1=false
    }
return (testresults1)
}

function checkphone(){
    var testresults2
    var int = document.info.PN.value
    var filter2= /[1-9]/g;

    if (filter2.test(int))
    testresults2=true
    else{
    alert("Please input a valid phone number!")
    testresults2=false
}
return (testresults2)
}

function validate(){
    if (document.info.email.value)
    return checkemail()
    else{
    return true
    }       
}

function validate2(){
    if (document.info.PN.value)
    return checkphone()
    else{
    return true
    }       
}

function FinalVal(){
    return ValEntry() && validate() && validate2();

}

function alert(){
    FinalVal();
    {
       var fields=["name"];
       var msg = "";
       msg += "The message has been sent " + document.info[ fields ].value + "!";
       alert("msg");
    }
    return true;
}


</script>

问题在于您的警报呼叫。我敢打赌,当你点击按钮时,你得到的只是一个空警报框

<input type ="button" value = "Send" onclick="alert()">
这是一个内置javascript函数,您正试图用相同的名称定义自己的函数。将该函数重命名为几乎任何其他函数,它将为您工作

<input type="button" value="Send" onclick="testSubmit()">

function testSubmit(){
    FinalVal();

    var fields=["name"];
    var msg = "";
    msg += "The message has been sent " + document.info[ fields ].value + "!";
    alert("msg");

    return true;
}

为什么要重新设计车轮时,所有这些都已可用。。。或者是要学习/测试/玩的东西?测试它,这样我就可以自己学习了。