javascript - 我的 onclick 事件在页面加载时执行,而不是在单击按钮时执行,我不知道为什么

标签 javascript php ajax

    function ajax_post() {

    var xmlhttp=new XMLHttpRequest();
    var working='working';
    xmlhttp.open("POST","process_form.php",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

    xmlhttp.onreadystatechange=function(){
        if(xmlhttp.readyState==4 && xmlhttp.status==200){
            // success
            var return_data = xmlhttp.responseText;
            document.getElementById("status").innerHTML = return_data;
        }
    }

xmlhttp.send(working);
alert("The ajax function is running!");
document.getElementById("status").innerHTML = "Processing. Please wait...";

}

var costButton = document.getElementById('cost-value');

costButton.onclick = ajax_post();

我正在尝试学习如何从 javascript 获取变量并将其发送到单独的 php 文件进行处理(我将把它放入数据库中)。我的第一个问题似乎是,它不是在我单击成本值按钮时运行的函数,而是在页面加载时运行,第二个问题似乎是我尝试发送(工作)的变量实际上并不运行被发送。这对我来说很新。有什么解决办法吗?

最佳答案

您正在设置 onclick函数的返回值,因为您正在使用括号执行该函数。删除()来自onclick它会按预期工作。

costButton.onclick = ajax_post; 

为了使其正常工作,您需要确保:

此脚本出现在结束正文标记 </body> 之前
或者当文档准备好使用 JS 时,将其包装在回调中。

 document.addEventListener("DOMContentLoaded", function() {
   // Your code here
 })

关于javascript - 我的 onclick 事件在页面加载时执行,而不是在单击按钮时执行,我不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33730656/

相关文章:

php - Paypal API,Curl 不返回任何输出

PHP 字符串替换值数组

javascript - 使用复选框交换内容在 div 元素中的位置

javascript - 更改内容后使框架适合内容

javascript - onclick 函数在 JavaScript 中不起作用

javascript - 如何在 Ionic 中的选项卡之间传递数据

javascript - 如何将数组从 jQuery Ajax 传递到 MVC 5 Action ?

javascript - 如何在 jQuery 中移动 HTML 元素?

php - 无法将变量传递给 Laravel x 组件

javascript - 如何通过 AJAX 调用获取 google plus 按钮计数