流星'提交'事件不起作用,其他事件正在发挥作用

时间:2014-10-11 05:44:53

标签: javascript jquery meteor

我有以下表单HTML代码:

<form class="login-form" method="post">
    <h3 class="form-title">Admin Login-20</h3>
    <div class="alert alert-danger display-hide">
        <button class="close" data-close="alert"></button>
        <span>
        Enter username and/or password. </span>
    </div>
    <div class="form-group">
        <!--ie8, ie9 does not support html5 placeholder, so we just show field title for that-->
        <label class="control-label visible-ie8 visible-ie9">Username</label>
        <div class="input-icon">
            <i class="fa fa-user"></i>
            <input class="form-control placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="username"/>
        </div>
    </div>
    <div class="form-group">
        <label class="control-label visible-ie8 visible-ie9">Password</label>
        <div class="input-icon">
            <i class="fa fa-lock"></i>
            <input class="form-control placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" name="password"/>
        </div>
    </div>
    <div class="form-actions">
        <label class="checkbox">
            <input type="checkbox" name="remember" value="1"/> Remember me </label>
        <button type="submit" class="btn green pull-right">
            Login <i class="m-icon-swapright m-icon-white"></i>
        </button>
    </div>
    <div class="forget-password">
        <p><a href="javascript:;" id="forget-password">Forgot Password</a></p>
    </div>

</form>

以下是事件代码:

    Template.adminLogin.events({

    "click form.login-form button[type='submit']": function (event, template) {

        event.preventDefault();
        console.log('Click button Login Form -01');
    },

    "keyup form.login-form": function(event, template){
         if(event.keyCode === 13) {
             event.preventDefault();
             console.log('Keyup Login Form - 01');
         }

    },

    "submit form.login-form": function (event, template) {

        event.preventDefault();
        event.stopPropagation();
        return false;
        console.log('Submit Login Form -01');

    }


});

我的问题是&#39;点击&#39; ,&#39; keyup&#39;正在工作,但提交&#39;不管用。有人可以指导我出了什么问题以及如何纠正它。

1 个答案:

答案 0 :(得分:0)

console.log无法正常工作的一个原因是,在console.log有机会运行之前,您返回false。

此外,您不必像在php中那样指定表单方法“post”。通常,您只需使用javascript来获取submit事件中所需的输入值,并调用某种方法(例如accounts.loginWithPassword)。此外,提交事件负责keyup和click事件,因此这些事件是多余的。

对于任何错误感到抱歉,我正在手机上写