getJSON 从表单内的按钮触发

发布于 2024-08-31 18:23:06 字数 252 浏览 7 评论 0原文

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

如果按钮放置在表单内,则 getJSON 方法不会返回结果。

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

非常感谢,

I'm having trouble understanding why I have to place the button triggering the getJSON method outside of the form for the request to work.

If the button is placed within the form then the getJSON method returns no results.

The code bascially makes a XHR request on clicking the Submit button, based on the value selected. I have replicated the issue here:
http://jsfiddle.net/z6caj/

Many Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

浪荡不羁 2024-09-07 18:23:06

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

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

The clicking of the button will submit the form the normal way (when placed inside the form). return false at the end of your click handler, and it should work as expected. Alternatively, prevent submission by making the form's submit handler return false:

$("form").submit(function() {
    return false;
});
贩梦商人 2024-09-07 18:23:06

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

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

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

Because it is a submit button and you do nothing to prevent the default action.

So the JS runs (setting the Ajax request going) and then the form submits (leaving the page and throwing the request away).

See http://docs.jquery.com/Tutorials:How_jQuery_Works (the section starting "For click and most other events")

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

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

     //do stuff

}

You could actually do the ajax request on the dropdown using the onchange event e.g.

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

     //do stuff

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文