2

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

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

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

非常感谢,

4

3 回答 3

3

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

$("form").submit(function() {
    return false;
});
于 2010-05-05T13:15:54.630 回答
2

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

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

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

于 2010-05-05T13:16:06.993 回答
1

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

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

     //do stuff

}
于 2010-05-05T14:42:10.963 回答