getJSON 从表单内的按钮触发
我无法理解为什么我必须将触发 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
单击按钮将以正常方式提交表单(当放置在表单内时)。在点击处理程序末尾
return false
,它应该按预期工作。或者,通过使表单的提交处理程序返回 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 handlerreturn false
:因为它是一个提交按钮,并且您没有采取任何措施来阻止默认操作。
因此,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 请求,例如
You could actually do the ajax request on the dropdown using the onchange event e.g.