不重复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上。
我尝试在页面加载后立即单击按钮,并在页面完全加载后等待了一段时间。因此它似乎与页面的其余部分无关。
这是一个已知的错误还是可能是由其他原因造成的?
答案 0 :(得分:1)
根据我的经验,当表单本身的编码存在问题或某些相关的javascript错误时会发生此类错误。事实上,你已经跟踪了每6次发生一次的机会,这一事实支持了这一推理。我建议的是查看您的控制台输出,打开持久日志记录,然后提交表单并进行测试。如果这确实是问题,控制台上会打印某种错误信息,你就可以从那里解决问题。
答案 1 :(得分:0)
我遇到了类似的问题,就我而言,这是由于 JavaScript 在 Form-Submit 上禁用了 Submit-Button(这样做的目的是防止用户双击时出现重复的 POST)。
禁用的表单元素不包含在表单数据中。
为了防止双击而“禁用”它的更好方法可能是在 JS 中设置 pointer-events: none
或防止多余的提交 (preventDefault
)。
这也可以解释它“有时”有效,因为我认为在收集表单数据和按钮被禁用之间存在竞争的空间。