在我的Web应用程序中,我对表单字段使用了一些自定义验证。在同一个表单中,我有两个按钮:一个用于实际提交表单,另一个用于取消/重置表单。
通常,我使用Safari作为默认浏览器。现在Safari5退出了,突然我的“取消/重置”按钮不再起作用了。每次按下重置按钮时,表单中的第一个字段都会获得焦点。但是,这与我的自定义表单验证相同。在其他浏览器上尝试时,一切都很好。我必须是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的问题,而Opera10却一直是一个问题,但我从未花时间来修复它。现在,我需要修复它,并看到您的帖子,但是如何取消表单还没有解决方案。经过大量搜索,我终于找到了一些东西:
http://www.w3.org/TR/html5/forms.html#attr-fs- formnovalidate
<input type=submit formnovalidate name=cancel value="Cancel">
适用于Safari 5和Opera 10。