提交在cshtml中输入按钮按键

时间:2015-06-02 11:50:46

标签: jquery angularjs asp.net-mvc-4

MVC非常新,并试图弄清楚如何将处理程序附加到提交按钮,这样用户就不必单击提交按钮。

我有以下JavaScript:

            //fix to add submit to the enter button
        function keypressHandler(e) {
            if (e.which == 13) {
                e.preventDefault(); //stops default action: submitting form
                $(this).blur();
                $('#btnLoginSubmit').focus().click();//give your submit an ID
            }
        }

        $('#myForm').keypress(keypressHandler);

这是_Layout.cshtml页面的标记:

<div ng-controller="LoginController">
<script type="text/ng-template" id="loginForm.html">
            <div class="modal-header">
                <h3>Please log in</h3>
            </div>
            <form ng-submit="submit()">
                <div class="modal-body">
                    <label>User name</label>
                    <input type="text" ng-model="user.userId" />
                    <label>Password</label>
                    <input type="password" ng-model="user.password" />
                </div>
                <div class="modal-footer">
                    <button class="btn btn-warning" ng-click="cancel()">Cancel</button>
                    <input type="submit" class="btn primary-btn" value="Submit" />
                </div>
            </form>
        </script>

我很难弄清楚如何将脚本附加到实际的提交按钮。我添加了一个id,但JS正在寻找表单名称(我知道它不是myForm),它似乎没有在任何地方定义。感觉这应该很容易,但我错过了一些东西。

1 个答案:

答案 0 :(得分:2)

您需要form id

<form id="myform" ng-submit="submit()">

但此外,您只需提交表单本身:

function keypressHandler(e) {
    if (e.which == 13) {
        e.preventDefault(); //stops default action
        $('#myform').submit();
    }
}

然后最后,你真的需要把它连接到文档:

$(document).keypress(keypressHandler);