Google关闭 - 触发表单提交

时间:2013-01-21 12:28:12

标签: javascript javascript-events form-submit google-closure google-closure-library

我有一个带有关闭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();
});


现在,我有以下两个问题:

  • 当我在其中一个字段
  • 中按“Enter”时,表单未提交
  • 事件goog.events.EventType.SUBMIT未在表单上触发, 所以我的最终听众不会被执行

我该如何解决这个问题? 感谢您对答案的期待

1 个答案:

答案 0 :(得分:2)

我找到的黑客是:

  • 附加隐藏式按钮标记
  • 触发点击事件ACTION
  • 上的隐藏按钮


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不会触发隐藏的事件&#34;显示:无&#34;元素,我们必须用其他css规则隐藏按钮