我开始使用诊断CSS样式表,例如
建议的规则之一突出显示类型为Submit的输入标签,并建议将其<button>用作更具语义的解决方案。<button>您遇到过的类型提交(例如与浏览器兼容性)的优缺点是什么?
<button>
明确地说,我了解的规格<button>,它具有定义的开始和结束,可以包含各种元素,而输入是单线态,不能包含任何东西。我实质上想知道的是它是否损坏。我想知道当前按钮的可用性。不幸的是,下面的第一个答案似乎确实暗示它不能用于表格之外的用途。
编辑2015
风景变了!我现在有6年以上处理按钮的经验,并且浏览器已经从IE6和IE7向前发展了一些。因此,我将添加一个答案,其中详细说明了我发现的内容和建议的内容。
从ASP.NET角度回答。
当我发现这个问题和ModernButton控件的一些代码时,我感到很兴奋,它最终是一个<button>控件。
因此,我开始添加各种按钮,并<img />在其中装饰标签以使其突出。在Firefox和Chrome浏览器中,一切都很好。
<img />
然后,我尝试使用IE6,并得到“检测到潜在的Request.Form值”,因为IE6在按钮内部提交了html,在我看来,该按钮中包含html标签。我不想禁用validateRequest标志,因为我喜欢这种添加的数据验证功能。
因此,然后我编写了一些JavaScript来在提交发生之前禁用该按钮。一个按钮在测试页上运行良好,但是当我在具有其他<button>标签的真实页面上对其进行尝试时,它再次爆裂。因为IE6提交了所有按钮的html。所以现在我有各种各样的代码可以在提交之前禁用按钮。
IE7的同样问题。幸运的是,IE8已修复此问题。
kes 如果您使用的是ASP.NET,建议不要走这条路。
更新:
我在那里找到了一个有望解决此问题的库。
如果您使用该库中的ie8.js脚本:
它可能工作得很好。IE8.js通过按钮标签使IE5-7与IE8保持同步。它使提交的值成为实际值,并且仅提交一个按钮。