我们使用自定义按钮提交表单。点击事件被分配给.btn-submit's以提交相应的表格。但是,如果<button type="submit">
中没有某种类型的<input type="submit">
或<form>
元素,则在用户名或密码文本字段中按Enter键不会提交表单。
如果input
字段中没有type="submit"
元素,则在<form>
字段中按Enter时如何仍然允许用户提交表单?
HTML
<form action="post.php" method="post">
<p><b>Username</b> <input type="text" name="username" style="width: 300px; font-size: 18px"></p>
<p><b>Password</b> <input type="password" name="password" style="width: 300px; font-size: 18px"></p>
<input type="hidden" name="user_login" value="1">
<div class="btn-inline btn-green btn-submit">Log In</div>
</form>
JS
$(document).ready(function()
{
$('.btn-submit').on('click', function(e)
{
$(this).parents('form:first').submit();
});
});
答案 0 :(得分:3)
你可以这样做,以便在输入中按下回车键时激活提交按钮
$('form').keypress(function(e){
var code = e.keyCode || e.which;
if( code === 13 ) {
e.preventDefault();
$( ".btn-submit" ).click();
};
});
修改强>
如果在textarea
中按下退货,则不会导致点击提交按钮,只会对input
类型的text
执行此操作。
$('input:text').keypress(function(e){
var code = e.keyCode || e.which;
if( code === 13 ) {
e.preventDefault();
$( ".btn-submit" ).click();
};
});
答案 1 :(得分:1)
您需要捕获回车键,最好使用表单上的jQuery委托。我想,只是在表单上定位你的代表并查看输入元素或查看表单的正文。从本质上说,它会说&#34;看看这个顶级元素,触发内部元素的X动作&#34;。你的父母将是形式,内部输入,动作是keydown或keyup
看到这个: jQuery delegate method not working for keydown and keypress
然后在功能测试中检查了什么是按键。如果输入,请提交。如果没有,则返回false。
PS:当我不在手机上时,我可以为你做一个代码段。
答案 2 :(得分:0)
这就是为什么:
当用户尝试时,提交事件将发送到元素 提交表格。它只能附加到
<form>
元素。表格可以 通过点击明确的<input type="submit">
提交,<input type="image">
或<button type="submit">
,或按Enter键 当某些表单元素具有焦点时。根据浏览器的不同,Enter键可能只会生成表单 提交,如果表单只有一个文本字段,或仅在那里 是一个提交按钮。界面不应该依赖于 此密钥的特定行为,除非强制该问题 观察按下Enter键的按键事件。