Jquery ajax 调用点击事件提交按钮

Posted

技术标签:

【中文标题】Jquery ajax 调用点击事件提交按钮【英文标题】:Jquery ajax call click event submit button 【发布时间】:2014-02-21 18:06:46 【问题描述】:

我构建了一个在用户单击提交按钮时提交的 ajax 调用。我已经包含了 jquery 并编写了以下代码(取自 jquery 文档):

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$(document).ready(function()
  $("Shareitem").click(function(e)
      e.preventDefault();
    $.ajax(type: "POST",
            url: "/imball-reagens/public/shareitem",
            data:  id: $("Shareitem").val(), access_token: $("access_token").val() ,
            success:function(result)
      $("sharelink").html(result);
    );
  );
);
</script>

HTML:

<div id="sharelink"></div>
[...]
<input type="hidden" name="id" value="" id="id"></dd>
<dd id="access_token-element">
<input type="hidden" name="access_token" value="xxxxxxxx" id="access_token"></dd>
<dt id="Shareitem-label">&#160;</dt><dd id="Shareitem-element">
<input type="submit" name="Shareitem" id="Shareitem" value="UpdatedByPreviousAjaxCall"></dd></dl></form>

问题是,提交动作被执行但ajax调用没有,所以表单正在执行请求的提交动作,而不是停留在同一页面上并更新div标签的内容。

我错过了什么?我哪里错了? 提前感谢您的任何提示。

【问题讨论】:

$('Shareitem')$('sharelink') 不是好的选择器...... 【参考方案1】:

您没有在按钮 id 之前添加#。您的 jquery 代码中没有正确的选择器。所以jquery永远不会在你的按钮点击中执行。它直接提交了您的表单,没有通过任何 ajax 请求。

查看文档:http://api.jquery.com/category/selectors/ 它是你的朋友。

试试这个:

看来id: $("#Shareitem").val()要传递的值是错误的

<input type="hidden" name="id" value="" id="id">

你需要改变这一行:

id: $("#Shareitem").val()

id: $("#id").val()

大家一起:

 <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
    <script>
    $(document).ready(function()
      $("#Shareitem").click(function(e)
          e.preventDefault();
        $.ajax(type: "POST",
                url: "/imball-reagens/public/shareitem",
                data:  id: $("#Shareitem").val(), access_token: $("#access_token").val() ,
                success:function(result)
          $("#sharelink").html(result);
        );
      );
    );
    </script>

【讨论】:

您的答案有效且准确(我不是因为晚上太晚了,所以我的想法有点混乱,但无论如何我不得不改变包含 jquery 的方式我正在使用 SSL 我关注 this tutorial

以上是关于Jquery ajax 调用点击事件提交按钮的主要内容,如果未能解决你的问题,请参考以下文章

jQuery如何实现点击一个按钮触发时间,点击另一个不触发?

JQuery 按钮未通过 ajax 触发服务调用

jQuery中引用js,按钮点击不触发是怎么回事?

jquery点击按钮如何触发当前点击按钮对应的事件

单击提交按钮时触发 Ajax 调用

php怎么给按钮添加事件