jQuery / Ajax请求被发送两次
我一遍又一遍地扫描我的代码,但我似乎无法找到问题。 当我单击链接#add-user-btn
,文件actions.php
被调用两次(因此PHP脚本执行两次)。
这是脚本:我想它与ajax请求前面的javascript有关?
$(function () { $("#add-user-btn").click(function (e) { e.preventDefault(); var email = $("#email").val(); var name = $("#name").val(); var action = "adduser"; $.ajax({ url: '../actions.php', type: 'POST', data: { action: action, email: email, name: name, }, dataType: 'json', success: function (data) { $(".close-reveal-modal").click(); } }); }); });
HTML:
尝试
$("#add-user-btn").unbind('click').bind('click', function () { });
这将确保只调用一次click事件。
当我使用我只能访问我的javascript的特定网站时,我也遇到了这种错误。 问题是在其他代码中有很多$(function()和$(document).ready。
你能做些什么来防止这种情况,如果你无法纠正核心问题是:
var preventRunDefault; $(function () { if(!preventRunDefault) { preventRunDefault = true; $("#add-user-btn").click(function (e) { e.preventDefault(); var email = $("#email").val(); var name = $("#name").val(); var action = "adduser"; $.ajax({ url: '../actions.php', type: 'POST', data: { action: action, email: email, name: name, }, dataType: 'json', success: function (data) { $(".close-reveal-modal").click(); } }); }); } });
但正确的方法是搜索原因而不做变通办法。