繁体   English   中英

使用jQuery Submit()按下Enter时提交表单

[英]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>

因此,您的目标是在按下Enter键时提交表单,对吗?

最简单的方法是使用“提交”按钮

<input type="submit" value="Login" />

而不是链接。 然后,事件由浏览器处理。

演示

如果您喜欢因为样式而具有链接,则可以使用CSS为按钮设置样式,并使它看起来像链接

更新

您需要的是<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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM