1

我有一個封閉的UI按鈕形式:谷歌關閉 - 觸發表單提交

<form id="login-form"> 
    <div> 
     <input type="text" name="email" /> 
     <input type="password" name="password" /> 
     <div id="submit-login" class="goog-css3-button">Sign in</div> 
    </div> 
</form> 


我做了我的按鈕提交我的表單:

var myButton = goog.ui.decorate(goog.dom.getElement("submit-login")); 
myButton.setDispatchTransitionEvents(goog.ui.Component.State.ALL, true); 
goog.events.listen(myButton, goog.ui.Component.EventType.ACTION, function(e) { 
    goog.dom.getElement("login-form").submit(); 
}); 


現在,我有2以下問題:

  • 表單未提交ED,當我推的領域之一「輸入」
  • goog.events.EventType.SUBMIT沒有在表格上觸發的事件, 所以我最終的聽衆不會被執行

我怎樣才能解決這個問題?
由於受期待您的回答

回答

2

我發現的黑客是:

  • 追加一個隱藏按鈕標籤
  • 觸發的隱藏按鈕點擊事件動作


var hiddenSubmit = goog.dom.createDom("button",{ type : "submit", "style" : "visibility: hidden; position: absolute; z-index: -10000"}); 
goog.dom.appendChild(goog.dom.getElement("submit-login"), hiddenSubmit); 
goog.events.listen(myButton, goog.ui.Component.EventType.ACTION, function(e) { 
    hiddenSubmit.click(); 
}); 


編輯:由於Safari瀏覽器和Chrome瀏覽器不會觸發隱藏「Display:none」元素上的事件,因此我們必須隱藏其他css規則的按鈕