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

Posted

技术标签:

【中文标题】JQuery 按钮未通过 ajax 触发服务调用【英文标题】:JQuery button is not triggering service call via ajax 【发布时间】:2016-10-21 14:42:47 【问题描述】:

我有一个 JSON 服务,我正在尝试通过网页中的 jquery 通过 ajax 调用来执行此服务。当我创建按钮并尝试执行点击事件但我无法获得任何警报消息以及服务调用也没有触发时,这意味着点击事件本身根本没有触发。请帮忙!

下面是代码

 <title></title>
    <script src="javascript.js"></script>
    <script type="text/javascript">
        $(document).ready(function ()  );
        $('#buttonnew').click(function () 
            alert("Hi");
            $.ajax(
                url: 'service2.svc/GetRestriction',
                method: 'post',
                contentType: 'application/json',
                data: ( property: '99883', code: 1 ),
                dataType: 'json',
                success: function (DATA) 
                    alert("hi");
                ,
                error: function (err) 
                    alert(err);
                
            );
        );
    </script>

【问题讨论】:

你是否包含了 jQuery 参考? 很多错误 1. jquery 不包括在内.. 2. doc ready 是空白的。 3.点击在文档之外准备好了。 您是否尝试过将分配点击事件的代码放入“就绪”函数中?像这样: $(document).ready(function () $('#buttonnew').click .......... ); 我想添加 jquery 1.11.2-js 文件,但我没有得到文件,所以我下载了包含并添加到我已经在 src 中添加的新文件 'Javascript.js' 中。这就是我在将此文件添加到 src 后得到 $ 作为选择器的原因。 Ricardo 你在说这行 $(document).ready(function () ); $('#buttonnew').click(function () alert("hi"); $.ajax( 【参考方案1】:

您需要在加载 DOM 时连接 click 事件。

 $(document).ready(function(e) 

         $('#buttonnew').click(function () 
                alert("Hi");
                $.ajax(
                    url: 'service2.svc/GetRestriction',
                    method: 'post',
                    contentType: 'application/json',
                    data: ( property: '99883', code: 1 ),
                    dataType: 'json',
                    success: function (DATA) 
                        alert("hi");
                    ,
                    error: function (err) 
                        alert(err);
                    
                );
            );    
    );

【讨论】:

感谢 ritesh ,实际上是这个 Ajax 的新手,所以我错过了这一点!【参考方案2】:

我认为您的代码中唯一的错误是您在文档准备好之前在按钮上分配了单击事件。所以你可以试试这个:

 <title></title>
    <script src="JavaScript.js"></script>
    <script type="text/javascript">
        $(document).ready(function ()  
           $('#buttonnew').click(function () 
            alert("Hi");
            $.ajax(
                url: 'service2.svc/GetRestriction',
                method: 'post',
                contentType: 'application/json',
                data: ( property: '99883', code: 1 ),
                dataType: 'json',
                success: function (DATA) 
                    alert("hi");
                ,
                error: function (err) 
                    alert(err);
                
            );
          );
        );
    </script>

我已经用 Jquery 2.2.2 对其进行了测试。

希望对你有帮助!

【讨论】:

感谢爱丽儿的帮助!

以上是关于JQuery 按钮未通过 ajax 触发服务调用的主要内容,如果未能解决你的问题,请参考以下文章

单击按钮时,如何触发 jquery datatables fnServerData 通过 AJAX 更新表?

asp.net 按钮单击未通过 jquery 在隐藏字段中触发大量数据

如果页面未刷新,则多个ajax调用按钮单击jquery

Jquery ajax不执行成功

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

jQuery ajax,一直调用error方法。