表单提交按钮值SOMETIMES未在Chrome

时间:2018-06-04 14:47:48

标签: html google-chrome post button

重复HTML Form Button value is not posted in Safari and Chrome

我有一个按钮,用于在单击时提交表单。

<form method="post" action="<URL>" class="login_form" name="login_form" id"login_form">
    ... various inputs here ...
    <button type="submit" name="signIn" class="cta">
        <span class="arrow">Enter</span>
    </button>
</form>

按钮名称用于服务器端以确定要采取的操作(未提供,因为服务器未使用它)。

问题是有时该名称未发布到服务器,而有时。该比率约为1次/ 6次。

我网站上的许多其他表单具有相同的结构,但我发现此行为仅适用于此。 它似乎只发生在Chrome上。

我尝试在页面加载后立即单击按钮,并在页面完全加载后等待了一段时间。因此它似乎与页面的其余部分无关。

这是一个已知的错误还是可能是由其他原因造成的?

2 个答案:

答案 0 :(得分:1)

根据我的经验,当表单本身的编码存在问题或某些相关的javascript错误时会发生此类错误。事实上,你已经跟踪了每6次发生一次的机会,这一事实支持了这一推理。我建议的是查看您的控制台输出,打开持久日志记录,然后提交表单并进行测试。如果这确实是问题,控制台上会打印某种错误信息,你就可以从那里解决问题。

答案 1 :(得分:0)

我遇到了类似的问题,就我而言,这是由于 JavaScript 在 Form-Submit 上禁用了 Submit-Button(这样做的目的是防止用户双击时出现重复的 POST)。

禁用的表单元素不包含在表单数据中。

为了防止双击而“禁用”它的更好方法可能是在 JS 中设置 pointer-events: none 或防止多余的提交 (preventDefault)。

这也可以解释它“有时”有效,因为我认为在收集表单数据和按钮被禁用之间存在竞争的空间。