Jquery 不能在表单内选择输入元素,但在表单外部选择输入元素
Jquery cannot select input element inside form but select when outside form
当提交按钮的外部表单时,单击事件会触发,但是当其内部表单时,jquery根本不起作用!
jquery:
$(document).ready(function() {
$("#btn").click(function(){
//do something
});
});
这不起作用:
<form id="submitForm">
<input type="email" name="email">
<input id="btn" type="submit" value="submit">
</form>
这有效! :
<form id="submitForm">
<input type="email" name="email">
</form>
<input id="btn" type="submit" value="submit">
为什么会这样?我怎样才能让它工作?
您可以通过.submit
触发表单提交
$(document).ready(function() {
$("#submitForm").submit(function(e){
e.preventDefault();
//do something
});
});
您仍然可以在表单中使用它
<form id="submitForm">
<input type="email" name="email"/>
<input id="btn" type="submit" value="submit"/>
</form>
这是因为表单内部的type=submit
按钮或输入会触发回发到后端或服务器。
这正是您的事件回调看似不起作用的原因,而实际上却不起作用。
使用以下命令阻止提交表单。
$('form').submit(function(e){
e.preventDefault();
// ajax stuff
});
$("#submitForm").submit(function(e){
e.preventDefault();
和
$("#btn").click(function(e){
e.preventDefault();
两者都奏效了。(将类型="提交"更改为类型="按钮"没有)。
相关文章:
- Javascript获取具有不同id的文件数's来自没有多个属性的文件输入元素
- 访问代码生成的输入元素上的keyup事件
- 使用 jQuery,当我在输入框外部单击时,如何更改输入元素的值
- 使用jQuery切换来显示内容,但防止在用户单击输入元素时关闭
- 如何使用角度事件处理程序引用输入元素的值
- 获取javascript中输入元素的索引
- 为什么Bootstrap typeahead不适用于具有相同ID的输入元素
- 如何使用javascript在输入元素中显示特殊字符
- 动态添加的输入元素不会在脚本中返回值
- 使用 jQuery 禁用除表单中的某些输入元素之外的所有输入元素
- 将焦点设置为输入元素角度 js
- 如何仅在输入元素具有焦点时才启动 setInterval
- 即使使用 parseInt,我也无法从输入元素中获取数值
- 通过应用自定义 css 类禁用 html 输入元素
- 聚合物 - 访问自定义元素内的 DOM 输入元素
- HTML-输入元素中不可删除的占位符
- 使用jquery将属性附加到输入元素
- 如果所有其他元素都填写在AngularJS中,如何动态添加新的输入元素
- 什么是输入元素上的innerHTML
- 输入元素模式属性的Javascript正则表达式在reFiddle上有效,但在页面上无效