[英]Submit form when enter is pressed using jQuery submit()
我有一个处理程序,可以在身份验证功能的上下文中捕获一组输入中的“输入”事件,但是当我按下该键时它不起作用。 代码如下:
$('#login form').submit(function(e) { login(e); });
function login(e)
{
e.preventDefault();
var l = $('#logo a').attr('href');
var name = $('#login input[name="login_username"]').val();
var pass = $('#login input[name="login_password"]').val();
$.ajax({
type: 'POST',
url: l+'user/login',
data: 'username='+name+'&password='+pass,
cache: false,
dataType: 'json',
success: function(response)
{
if (response.status == true)
window.location = response.redirect;
else
jQuery.facebox('<p class="facebox-notice">'+response.error+'</p>');
}
});
}
但是,它确实可以用于我出于相同目的的按钮:
$('#dologin').click(function(e) { login(e); });
有什么想法吗? 干杯!
编辑
标记如下:
<div id="login">
<form action="" method="post">
<input type="text" name="login_username" />
<input type="password" name="login_password" />
<a href="" id="dologin">LOGIN</a>
</form>
</div>
更新
您需要的是<input type=submit>
。 但是,您可以选择将其隐藏在屏幕之外。 这样一来,您可以免费enter
提交。
请记住,虽然您无法使用display:none
隐藏提交display:none
更改可见性,因为它随后变为非活动元素,并且不适用于大多数浏览器。
尝试在表单中包含一个隐藏的提交按钮。
更新了好吧,它将在Firefox中运行,但在Chrome中不起作用。 我想IE也不会处理。
好吧,您可以使用脚本方式http://jsfiddle.net/GqHzZ/ 。 在所有将触发提交功能的事件字段上添加按键处理程序,如下所示:
$(document).ready(function(){
$('#login form input').keypress(function(e) { if(e.which == '13')login(e); });
使用基于Webkit的浏览器(Chrome,Safari),我发现尝试执行某些“单击时”事件,在锚标记中带有空白href元素的提交和其他操作均无效。
<a href="" id="dologin">LOGIN</a>
原因仅仅是您的href为空。
如果您将其设置为几乎所有内容,例如#并在jQuery中返回false ... webkit将像Firefox和其他浏览器一样工作。
错误的返回部分btw ...阻止了“ 默认操作 ”,该操作将“跟随”#链接。
的HTML
<a href="#" id="submitbutton">LOGIN</a>
jQuery的
<script>
$(document).ready(function() {
$('#submitbutton').click(function() {
$('#someForm').submit();
return false;
});
});
</script>
(似乎)在移动Webkit(例如iPhone,iPad,Android)上甚至更加严格地执行了此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.