2014-05-05 83 views
0

我有一個簡單形式:JQuery的HTML5形式

<div class="container"> 
     <div class="row"> 
      <div class="col-md-4 col-md-offset-4" > 
       <form class="form-signin" role="form" id="login-form"> 
        <h2 class="form-signin-heading">Please sign in</h2> 
        <input type="email" class="form-control" placeholder="Email address" required autofocus> 
        <input type="password" class="form-control" placeholder="Password" required> 
        <label class="checkbox"> 
        <input type="checkbox" value="remember-me"> Remember me 
        </label> 
        <button class="btn btn-lg btn-primary btn-block" type="submit" id="login-but-sub">Sign in</button> 
       </form> 
      </div> <!-- form container --> 
</div> 
    </div> <!-- /container --> 
在HTML 5 web應用程序

,(餘燼JS,如果它使一個diff), 的HTML 5表單驗證所描述here完美。 我附上一個jQuery事件本身:

$(function(){ 
    /*Try to restore user once upon loading*/ 
    restore_user(); 
    App = Ember.Application.create({ 
         LOG_TRANSITIONS: true, }); 

    client = new client() 


    App.Router.map(function() { 
     this.route('login'); 
    }); 

    App.IndexRoute = Ember.Route.extend({ 
     setupController: function(controller) { 
      console.log(client); 
      if(!client.isLoggedIn()){ 
       this.transitionTo('login') 
      } 
     } 
}); 
    $("#login-but-sub").submit(function(event){ 
    console.log("login clicked"); 
}); 

}); 

和事件似乎永遠不會被解僱...... 如果我將其更改爲問題:

$("body").submit(function(event){ 

$("body").on('submit','body',function(event) 

那麼它也可以。 第一個有什麼問題?

+2

提交事件的'

',而不是解僱了'
+0

@anderssonola這是OP的問題,您應該張貼作爲回答 –

+0

代替(「form」)。submit(function(event){ – jayaguilar

回答

1

:當用戶試圖 提交表單

的提交事件被髮送給一個元素。它只能附在元素上。表單可以通過點擊明確的 提交,或者在某些表單元素有焦點時按回車 。

所以,你應該使用.submit()<form>元素:

$("#login-form").submit(function(event){ 
    console.log("login clicked"); 
}); 

看起來像你的形式已被動態添加,如果是,那麼你需要使用event delegation

$("body").on('submit','#login-form',function(event) { 
    console.log("login clicked"); 
}); 
+0

對不起,但是這個不起作用,嘗試使用它,它並沒有激發日誌(之前已經嘗試過) – cromestant

+0

請檢查我的編輯 – Felix

+0

謝謝,這是做到了。 – cromestant

0
$('.form-signin').submit() will work. 

提交事件屬於形式,而不是提交按鈕

+0

在這裏相同,測試和不發射。 (已測試添加它也形成,但沒有。 – cromestant

+0

嘗試添加'返回false;'後'console.log(「登錄點擊」);''這將阻止表單提交(和頁面重新加載) – andrew

4

事件不會對<button>它在<form>解僱解僱的提交。

在你的榜樣提交事件

冒泡到<body>

+0

好信息 – cromestant