簡體   English   中英

javascript可以正常工作,但聯系表單仍會發送郵件

[英]javascript works but contact form still sends mail

嗨,抱歉我的英語不好

我有一個聯系頁面,我正在使用JavaScript制作“驗證碼”。 因此,人們必須做一個數學運算,如果那是正確的,他們可以給我發送電子郵件。 現在,我的問題是javasctipt發出警報,提示數學錯誤或未填寫,但仍然出現電子郵件。

我的html:

    <script type="text/javascript">
function validate () {
    var ta = document.getElementById("ta").value;
    var answer = document.getElementById("answer").value;
    var digit1 = parseInt(document.getElementById("digit1").innerHTML);
    var digit2 = parseInt(document.getElementById("digit2").innerHTML);
    var sum = digit1+ digit2;
    if (answer === null || answer === "") {
    alert("reken de cijfers uit");
    return false;
    } else if (answer != sum){
    alert("je som is fout");
    } else if (ta === null || ta === ""){
    alert("schrijf een bericht");
    } else {
    document.getElementById("answer").innerHTML = "bezig met sturen";
    document.getElementById("answer").innerHTML = "";
    }
}

function randNums () {
    var rand_num1 = Math.floor(Math.random()*10)+1;
    var rand_num2 = Math.floor(Math.random()*10)+1;
    document.getElementById("digit1") .innerHTML=rand_num1;
    document.getElementById("digit2") .innerHTML=rand_num2;
}

</script>

<body onload="randNums() ;">

<form action="/cgi-bin/form.cgi" method="POST" onsubmit="return validate ();">
<input type="hidden" name="DEBUG" value="0">
<input type="hidden" name="MAILFILE" value="peymankarimi/form/sjabloon.txt">
<input type="hidden" name="MAILTO" value="peyman_50@hotmail.com">
<input type="hidden" name="REPLYFAULT" value="peymankarimi/form/formulier.html">
<input type="hidden" name="REPLYOK" value="peymankarimi/form/verzonden.html">

<table border="0" width="374" id="contactformulier">
<tr>
    <td width="137">Naam:</td>
    <td width="230"><input type="text"  size="31" name="naam" placeholder="Naam"></td>
</tr>
<tr>
    <td width="137">Voornaam:</td>
    <td width="230"><input type="text" size="31" name="voornaam" placeholder="Voornaam"></td>
</tr>

<tr>
    <td width="137">Woonplaats:</td>
    <td width="230"><input type="text" size="31" name="woonplaats" placeholder="Woonplaats"></td>
</tr>
<tr>
    <td width="137">Telefoonnummer:</td>
    <td width="230"><input type="text" size="31" name="telefoon" placeholder="Telefoonnummer">    </td>
</tr>
<tr>
    <td width="137">E-mailadres: <br></br></td>
    <td width="230">
    <input type="text" size="31" name="MAILFROM" placeholder="E-mailadres"> <br></br> </td>
</tr>
</tr>   
<tr>
    <td width="137">Onderwerp:</td>
    <td width="230"><input type="text" size="31" maxlength="30" name="SUBJECT"> </td>
</tr>

<tr>
    <td colspan="2">Uw vragen, opmerkingen, suggesties, ... :<br>
    <textarea id="ta" name="omschrijving" rows="6" cols="43" ></textarea>
    <br />
    <strong> Tel deze cijfers op </strong>
<span id="digit1"> </span> +
<span id="digit2"> </span> =
<input type="text" id="answer" size="2"; />
<br /> 
<p align="right"><input type="submit" name="cmdVerzenden" value="Verzenden">&nbsp;
    <input type="reset" name="cmdWissen" value="Wissen"></td>
</form>

</tr>
</table>
</form>
</body>

您的validate函數需要針對所有錯誤返回false,以阻止表單提交。 您似乎只有一個錯誤。

function validate () {
    var ta = document.getElementById("ta").value;
    var answer = document.getElementById("answer").value;
    var digit1 = parseInt(document.getElementById("digit1").innerHTML);
    var digit2 = parseInt(document.getElementById("digit2").innerHTML);
    var sum = digit1+ digit2;
    if (answer === null || answer === "") {
    alert("reken de cijfers uit");
    return false;
    } else if (answer != sum){
    alert("je som is fout");
    return false;
    } else if (ta === null || ta === ""){
    alert("schrijf een bericht");
    return false;
    } else {
    document.getElementById("answer").innerHTML = "bezig met sturen";
    document.getElementById("answer").innerHTML = "";
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM