【问题标题】:getJSON triggered from a button inside a formgetJSON 从表单内的按钮触发
【发布时间】:2010-05-05 22:42:10
【问题描述】:

我无法理解为什么我必须将触发 getJSON 方法的按钮放在表单之外才能使请求工作。

如果按钮放置在表单中,则 getJSON 方法不返回任何结果。

代码基本上在单击提交按钮时根据所选值发出 XHR 请求。我在这里复制了这个问题: http://jsfiddle.net/z6caj/

非常感谢,

【问题讨论】:

    标签: jquery html getjson


    【解决方案1】:

    单击按钮将以正常方式提交表单(放置在表单内时)。 return false 在您的点击处理程序的末尾,它应该按预期工作。或者,通过使表单的提交处理程序return false 来防止提交:

    $("form").submit(function() {
        return false;
    });
    

    【讨论】:

      【解决方案2】:

      因为它是一个提交按钮,并且您没有采取任何措施来阻止默认操作。

      所以 JS 运行(设置 Ajax 请求)然后表单提交(离开页面并丢弃请求)。

      参见http://docs.jquery.com/Tutorials:How_jQuery_Works(以“点击和大多数其他事件”开头的部分)

      【讨论】:

        【解决方案3】:

        您实际上可以使用 onchange 事件在下拉列表中执行 ajax 请求,例如

        $('#state').change(function(){
        
             //do stuff
        
        }
        

        【讨论】:

        • 这就是我最终做的:)!
        猜你喜欢
        • 2016-02-26
        • 1970-01-01
        • 2013-03-19
        • 1970-01-01
        • 1970-01-01
        • 2011-09-16
        • 1970-01-01
        • 2017-02-15
        • 1970-01-01
        相关资源
        最近更新 更多