jQuery Ajax 通过单击同时触发 2 个事件

标签 jquery ajax

我几乎不知道jquery ajax。我试图通过一次单击同时触发 2 个事件。但不知何故它不起作用。我不明白我的不足在哪里。

$(document).ready(function() {
  $("#trigger").click(function(e) {
    e.preventDefault();
    var text = $(this).data('text');
    var formname = $(this).data('formname');
    var agree = confirm(text);
    if (agree)
      var getcururl = window.location.href;
    var testid = $('#testid').val();
    $.ajax({
      method: 'POST',
      url: 'test.php',
      data: {
        getcururl: getcururl,
        testid: testid
      },
      success: function(data) {
        if (data != '') {
          alert(data)
        }
      },
      error: function(data) {
        alert('Something went wrong, Please contact admin');
      }
    });
  });
  else
    return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<a id="trigger" href="#" data-text="Are you sure?" data-formname="testform">Click</a>
<input type="hidden" id="testid" value="myname" />

寻求有关我面临的问题的建议。如果我只运行 ajax 发布而没有确认警报,那么它可以工作,我想在用户单击该按钮之前显示警报,然后在同意后处理 ajax 发布。

我做得对吗?

JSFIDDLE DEMO

最佳答案

如果您将“else”语句移动到它所属的位置,它可能会起作用。但更好的方法是将其分解为多个函数。这使得它更容易理解和维护。

$(document).ready(function() {
        $("#trigger").click(function(e) {
            var text = $(this).data('text');
            var agree = confirm(text);
            if (!agree){
                return false;
            }
            runAjax();
        });

    });

function runAjax(){
    var getcururl = window.location.href;
    var testid = $('#testid').val();
    $.ajax({
        method: 'POST',
        url: 'test.php',
        data: {
            getcururl: getcururl,
            testid: testid
        },
        success: function(data) {
            if (data != '') {
                alert(data)
            }
        },
        error: function(data) {
            alert('Something went wrong, Please contact admin');
        }
    });
}

关于jQuery Ajax 通过单击同时触发 2 个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33877175/

相关文章:

javascript - 如何使用 jQuery 将行号添加到代码块?

javascript - 如果 jquery 加载失败,如何停止进一步的 javascript 调用?

java - 从 .java 文件获取 JSON 数据

javascript - Ajax 替换整个页面,而不仅仅是 div

javascript - 如何使用 jQuery 保存数据?

Javascript 添加/删除文本框和相应的删除按钮

javascript - 如果文本存在,则重新加载页面

javascript - 提交 jquery ajax 帖子时加载栏,不显示

jquery - 如何在jquery数据:中添加(for循环)

c# - 我应该在哪个页面上为具有布局和部分 View 的 ASP.NET Web 应用程序添加 ajax 查询?