繁体   English   中英

谷歌关闭 - 触发表单提交

[英]Google closure - Triggering form submit

我有一个带有关闭 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不会在表单上触发,所以我最终的监听器不会被执行

我怎样才能解决这个问题?

我发现的黑客是:

  • 附加一个隐藏的按钮标签
  • 触发点击事件 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 不会在“Display: none”元素隐藏时触发事件,我们必须使用其他 css 规则隐藏按钮

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM