我有一个我正在创建的表单,并且由于其敏感性,我进行了相当多的JavaScript验证,并且如果JS,我不能允许用户在表单上启动未启用。回到当天,我将通知使用NoScript标签。我看到它们仍然可以在HTML5中使用,但它们似乎正在出路。是否有一种新的/首选的处理这种情况?
谢谢。
带有更多的HTML5东西,JavaScript并不需要太多。例如,表单验证不再需要JS。音频/视频不再需要JavaScript或Flash。等等。
但是,<noscript>
仍然是通知人们某些功能需要JavaScript的最可靠的方式。替代方法是将"需要JavaScript"放在页面中,然后使用JavaScript将其删除。
过去,我在页面之前使用重定向进行了此操作。
类似于您的表单的window.location(),它们是一个页面上的元编写标签,说它不支持它。
问题是,如果没有JavaScript,您如何隐藏或防止页面上的内容。
您可以在同一页面上做我建议的事情。默认情况下有一个元刷新负载,然后将JavaScript停止。
或也许有JavaScript设置一个隐藏的变量,然后您可以阻止表单服务器端。
只是一些选项。除了使用NoScript标签,但这可能是最好的。
您应该始终在服务器端提供验证,并返回带有JavaScript的任何验证错误。JavaScript验证绝不应作为实际数据验证。
话虽如此,您可以简单地将表格呈现在输入上的disabled
属性,而form
和noscript
消息无action
,然后使用JavaScript将操作添加到表单中并删除禁用的Atributes。
<form id="myform" method="post">
<input type="text" name="something" id="myinput1" disabled />
<input type="submit" id="sbmtbtn" disabled />
</form>
<noscript>You must have Javascript!</noscript>
<script>
document.getElementById('myform').setAttribute('action', '/formpost/url');
document.getElementById('myinput1').removeAttribute('disabled');
document.getElementById('sbmtbtn').removeAttribute('disabled');
// You get the picture
</script>