在我的Web应用程序中,我对表单字段使用一些自定义验证。在相同的形式下,我有两个按钮:一个实际提交表单,另一个取消/重置表单。
主要是我使用Safari作为我的默认浏览器。现在Safari 5出来,突然我的取消/重置按钮不工作了。每次我打的重置按钮第一个字段在我的形式确实得到了焦点。但是,这与我的自定义表单验证的行为相同。当尝试与另一个浏览器一切都工作正常。我不得不成为一个Safari 5的问题。
我改变了一点在我的Javascript代码,我发现以下行引起的问题:
document.getElementById("somefield").required = true;
为了确保这将是真正的问题,我创建了一个测试场景:
<!DOCTYPE html> <html> <head> <title>Test</title> </head> <body> <form id="someform"> <label>Name:</label> <input type="text" id="name" required="true" /><br/> <label>Car:</label> <input type="text" id="car" required="true" /><br/> <br/> <input type="submit" id="btnsubmit" value="Submit!" /> </form> </body> </html>
还有人绊倒了吗?
解决方法
我刚刚遇到这个问题与Safari 5,它已经是Opera 10一段时间的问题,但我从来没有花时间来解决它。现在我需要修复它,看到你的帖子,但没有解决方案,如何取消表单。经过大量搜索,我终于找到了一些东西:
http://www.w3.org/TR/html5/forms.html#attr-fs-formnovalidate
<input type=submit formnovalidate name=cancel value="Cancel">
适用于Safari 5和Opera 10。