我的 onclick 事件在页面加载时执行,而不是在单击按钮时执行,我不知道为什么
My onclick event performs when the page loads instead of when the button is clicked, and i don't know why
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
})
相关文章:
- 单击元素两次后执行操作
- 单击函数仅对某些数据名称执行
- 单击Dojo按钮执行PHP脚本
- 只要用户将鼠标悬停在jQuery中的某个元素上,就可以执行多次单击
- 不同'单击'不同脚本中的回调:我可以控制执行顺序吗
- 如何防止jQuery中复选框单击时执行多个代码
- 仅对 CSS 类下的一个按钮执行单击事件
- 单击事件执行单击和悬停事件处理程序,即使单击事件处理程序取消绑定所有处理程序也是如此
- 如何使用单个按钮执行单击事件以选择不同的 DIV
- 如何在 jQuery 元素完全加载后执行单击事件
- 无法对动态创建的 html 元素执行单击事件
- 将href执行单击延迟到ajax调用之后
- 尝试在元素出现时执行单击功能
- 执行单击RadioButtonList ListItem
- 无法对动态生成的表执行单击操作
- 执行单击或双击.不是两者都有
- 在传递参数时,如何让setInterval()从函数内部执行单击
- ExtJS 按钮 2 上单击执行单击按钮 1 按组件
- 在Java中执行单击的最快方式
- 使用javascript或jquery在禁用按钮上执行单击事件