单击带有形式动作的按钮时停止链接转发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单击带有形式动作的按钮时停止链接转发相关的知识,希望对你有一定的参考价值。

我创建了此代码,可以计算som值。单击“计算”按钮时,它仅显示结果。就其本身而言,代码可以正常工作。

为了能够记录数据,它还通过使用链接到php文件的表单和操作来发送插入值的电子邮件。将此表单添加到代码中后,它错误地重定向到表单action-url。理想情况下,它应该在网页上显示计算结果,而无需在按下按钮时重新加载或重定向。

我尝试使用“ return false”,但没有任何运气。更改/添加按钮类型时,它将阻止计算功能或重定向。

html文件:

<form action="/php/calcA.php" method="POST" role="form">
    <p>Value A</p>
    <input type="number" id="num1" style="text-align: center;" class="form-control" name="num1" required="required" data-error="Value is required.">
    <p>Value B</p>
    <input type="number" id="num2" style="text-align: center; class="form-control" name="num2" required="required" data-error="Value is required."></p>

    <button onClick="calculate()" class="btn btn-primary blueline" style="color: #FFF; font-weight: 700;">Calculate</button>
    <br>
    <h4 class="main" style="margin-left: 25px; margin-right: 25px; background: #1CBC55; color: #FFF; text-align: left; font-weight: bold" id="answer">Savings in total:</h4>     
<script>
    function calculate()
        var field1=document.getElementById("num1").value;
        var field2=document.getElementById("num2").value;

        var result=parseFloat(field1)*parseFloat(field2)-(2000*parseFloat(field1));

     if(!isNaN(result)) 
        document.getElementById("answer").innerHTML="Savings in total: €"+result+".00 excl. VAT";
     

</script>
</form>

PHP文件:

    $num1 = $_POST['num1'];
    $num2 = $_POST['num2'];

    $email_from = 'Data from calcA';
    $email_subject = 'Data from CalcA';
    $email_body =
                "$num1\n".
                "$num2\n"

    $to = "data@youremail.com";
    $headers = "From: $email_from \r\n";
    $headers = "Reply-To: $email \r\n";

mail($to,$email_subject,$email_body,$headers);
答案

您正在使用button,默认类型为submit,因此它将始终重定向到action页面。您可以将button更改为type="button",然后从ajax功能向calculate()页面发送/php/calcA.php请求以发送邮件。

以上是关于单击带有形式动作的按钮时停止链接转发的主要内容,如果未能解决你的问题,请参考以下文章

读取数据并单击停止按钮

单击按钮后应用程序停止工作

怎么把链接做成一个按钮的形式放在网页上面?

有一个带有链接 Javascript 的 HTML 文档我试图在单击提交按钮时添加一条警报消息。我该怎么做呢?

带有用户单击所选组件的动态选项卡

Axure RP从入门到精通(五十一)案例 - 超链接