从表单内的按钮触发getJSON

时间:2010-05-05 13:12:53

标签: jquery html getjson

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

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

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

非常感谢,

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

因为它是一个提交按钮,您无法阻止默认操作。

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

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

答案 2 :(得分:1)

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

$('#state').change(function(){

     //do stuff

}