javascript - HTML的表单中如何做到敲回车触发type为button的按钮
巴扎黑
巴扎黑 2017-04-11 09:58:50
[JavaScript讨论组]
    <form>
        <p class="form-group">
            <label for="username" class="col-md-2 control-label">姓名</label>
            <p class="col-md-10">
                <input type="text" class="form-control" id="username" placeholder="请输入你的名字">
            </p>
        </p>
        <p class="form-group">
            <label for="password" class="col-md-2 control-label">密码</label>
            <p class="col-md-10">
                <input type="password" class="form-control" id="password" placeholder="请输入密码">
            </p>
        </p>
        <button type="button" onclick="login()" style="width: 70%;margin: 5rem auto 3rem;" class="center-block btn btn-primary btn-raised">登录</button>
    </form>

网页中有如上的一个form表单,其中的button的type是button而不是submit

然后login函数是这样的:

function login() {
        var username=$("#username").val();
        var password=$("#password").val();
        if (username == "") {
            alert("请输入姓名");
            return;
        }
        if (password == "") {
            alert("请输入密码");
            return;
        }
        $.ajax({
            url: "api/login",
            type: "get",
            data: {
                username:username,
                password:password
            }
        }).done(function (data) {
            if (data == 'success') {
                location.href='index.html';
            }else if (data == 'wrong password') {
                alert("您输入的密码有误");
                $("#password").val('');
            }else if (data == 'wrong username') {
                alert("您输入的用户名不存在");
                $("#username").val('');
            }
        }).fail(function () {
            alert("获取信息失败");
        });
    }

因为是通过ajax请求服务器来实现登录的,所以我没有用button type="submit",但是现在问题是如果type是button的话,就不能实现敲回车自动触发按钮的功能了,我想做到在输入框里敲一下回车就自动触发登录的功能,请问该如何实现啊?

谢谢

巴扎黑
巴扎黑

全部回复(5)
高洛峰

换回 type="submit",在 form 的 onsubmit 事件中触发 AJAX 请求,并 preventDefault() 就可以了。

高洛峰

方法挺多的,说两个吧
1.改成 submit 然后 preventDefault
2.就用 button 然后监听 keyboard 的按键

高洛峰

可以在输入框添加onKeyDown事件来捕获回车,判断keyCode在事件里调用login()。

迷茫

输入框.onkeyup = function(event){
if(event.keyCode == 13){

 form.submit();

}
};
回车的时候,用onkeyup事件,监听按下的是不是回车,如果是回车,提交表单。
event.keyCode输出按下健的那个什么码;回车是13;

PHP中文网

angularjs扩展了form的功能,自带这种功能

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号