【问题标题】:Why does my form not submit when pressing enter in Chrome?为什么在 Chrome 中按 Enter 时我的表单没有提交?
【发布时间】:2016-07-08 10:00:43
【问题描述】:

我使用paper-input 字段的表单在按 chrome 中的 enter 键时未提交。但是,在所有其他浏览器中按 enter 时,它确实会提交。以下是相关代码:

<form [ngFormModel]="loginForm">
    <paper-input type="text"
                 ngControl="username"
                 label="Username"
                 auto-validate
                 pattern="{{usernameValidation.get()}}"
                 maxlength="20"
                 error-message="Alphanumeric and underscore characters only. [1-20]"
                 ngDefaultControl>
        <iron-icon suffix icon="account-circle"></iron-icon>
    </paper-input>

    <paper-input type="password"
                 ngControl="password"
                 label="Password"
                 auto-validate
                 pattern="{{passwordValidation.get()}}"
                 maxlength="60"
                 error-message="Long passwords only. [8-60]"
                 ngDefaultControl>
        <iron-icon suffix icon="fingerprint"></iron-icon>
    </paper-input>

    <paper-input type="submit"
                 value="Log In"
                 (click)="submit()"
                 [disabled]="!loginForm.valid || loading"
                 ngDefaultControl>
    </paper-input>
</form>

我尝试使用ngSubmitsubmit() 函数调用移动到表单元素,并尝试在表单中添加隐藏的标准提交输入以欺骗Chrome 提交,但没有成功。我还尝试使用标准的input 元素以及button。任何输入将不胜感激。谢谢!

如果有人想解释否决票,我很乐意修改我的问题。

【问题讨论】:

  • 我认为这是因为 &lt;paper-input type="submit" 元素。我不知道聚合物或它是什么,但你可以尝试让它键入按钮
  • 感谢@GordonFreeman 的建议,但我认为此错误与 Polymer 有关,因为没有其他元素类型起作用。

标签: javascript forms polymer form-submit keypress


【解决方案1】:

一种选择是使用 Polymer 的 a11y-keys 元素。你可以这样做:

<iron-a11y-keys  keys="enter" on-keys-pressed="submitForm" id="a11y"></iron-a11y-keys>

这将触发您在元素中定义的“submitForm”方法。以下是 a11y-keys 元素的文档:https://elements.polymer-project.org/elements/iron-a11y-keys

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-27
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    相关资源
    最近更新 更多