Not*_*rag 4 javascript forms jquery
有人可以解释为什么这段代码不起作用:
$('form').on('submit', function (e) {
e.preventDefault();
var first = $('.first').val();
var next = $(".next").val();
alert(first + " " + next);
});
Run Code Online (Sandbox Code Playgroud)
当我删除两个输入中的一个然后让它们混乱时它似乎工作正常.
你需要一个提交按钮.您可以根据需要隐藏它,但默认情况下输入提交表单,它需要在那里.
$('form').on('submit', function (e) {
e.preventDefault();
var first = $('.first').val();
var next = $(".next").val();
alert(first + " " + next);
});Run Code Online (Sandbox Code Playgroud)
input[type="submit"] {
display: none;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form>
<input type="text" name="a" class="first" placeholder="Enter First" />
<input type="text" name="s" class="next" placeholder="Enter Next" />
<input type="submit" value="submit" />
</form>Run Code Online (Sandbox Code Playgroud)
"如果表单没有提交按钮,那么如果表单有多个阻止隐式提交的字段,则隐式提交机制必须不执行任何操作,否则必须从表单元素本身提交表单元素."
"出于上一段的目的,元素是一个阻止表单元素隐式提交的字段,如果它是一个输入元素,其表单所有者是该表单元素,并且其type属性处于以下状态之一:Text,[ ...]"
HTML5 中明确指定了此行为。
\nhttp://www.w3.org/TR/html5/forms.html#implicit-submission:
\n\n\n\xe2\x80\x9c如果表单没有提交按钮,则当表单有多个阻止隐式提交的字段时,隐式提交机制必须不执行任何操作,否则必须从表单元素本身提交表单元素。\xe2\ x80\x9d
\n\xe2\x80\x9c出于上一段的目的,元素是阻止隐式提交的字段表单所有者是表单元素且其 type 属性处于以下状态之一的输入元素,则该元素是:文本,[\xe2\x80\xa6]\xe2\x80\x9d
\n
您的两个输入字段都是,因此当您在字段中按 Enter 键时,type=text浏览器不允许隐式提交表单。
您可以添加一个keydown处理程序来检查按下了哪个键,并submit在该键恰好是键时显式调用表单或函数的方法[enter]。(有关详细信息应该很容易通过搜索找到。)
| 归档时间: |
|
| 查看次数: |
1097 次 |
| 最近记录: |