Google关闭-触发表单提交
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
未在表单上触发,所以我最终的监听器不会被执行
我该如何解决这个问题?
我发现的hack是:
- 添加一个隐藏的按钮标签
- 触发事件中隐藏按钮的点击动作
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规则
相关文章:
- HTML表单提交时未执行外部函数
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 将图像上传ajax与表单提交ajax相结合
- Javascript无法处理表单提交
- 如何在我的情况下禁用表单提交
- 加载后的页面与ajax表单提交不起作用
- angularjs-控制器在表单提交时未调用
- 如何防止引导模式关闭表单提交使用代码点火器
- 使用jQuery切换根据选中的复选框隐藏/显示表单提交按钮 - 如何设置默认关闭的提交按钮
- 提交表单并关闭花式框,Javascript
- 防止引导模式窗口在提交表单时关闭
- 将表单提交到新选项卡并关闭模态
- 如何在成功提交后关闭模态框,并在表单提交时有条件地打开第二个模态
- 提交表单并关闭窗口——这是正确的做法
- 从弹出窗口提交表单到新选项卡,然后关闭弹出窗口,防止表单提交
- 启动模式在表单提交时没有关闭
- 如何在Laravel上提交表单后关闭Bootstrap Modal
- 提交表单后关闭弹出窗口
- Google关闭-触发表单提交
- window.open以表单提交为中心(关闭)