我面临一个非常奇怪的问题。
我有一个带文本框的简单表单。我有两个类型提交按钮。如果我在其中一个按钮上设置了name = submit
,那么点击时按钮就会被禁用而不会被发布。
这是引导带中的标准行为还是可以更改?
答案 0 :(得分:1)
你不应该将任何表单元素命名为“submit”,因为这会掩盖/删除JavaScript form.submit()函数,它将无法使用!
您可以使用document["nameOfForm"]["nameOfField"]
或document.nameOfForm.nameOfField
按名称处理任何表单字段。已经存在document.myForm.name
等表单属性或document.myForm.submit()
等方法。
使用已经由浏览器定义的表单属性或方法的名称将干扰依赖于它们的任何功能。
要避免的其他常见字段名称:
您选择的JS库似乎正在使用form.submit()
提交表单。
答案 1 :(得分:1)
不要使用表单的属性,例如submit,reset,length,method来设置表单,字段元素的名称或id属性。名称冲突可能导致问题。
例如,您无法在验证后提交表单是否使用submit命名提交按钮:
<button type="submit" name="submit" class="btn btn-primary">Submit</button>
DOMLint有一个完整的规则列表,用于检查这类问题的标记。
参考:官方文档中的the name conflict warning。