用于禁用JavaScript的浏览器的当前接受/首选处理



我有一个我正在创建的表单,并且由于其敏感性,我进行了相当多的JavaScript验证,并且如果JS,我不能允许用户在表单上启动未启用。回到当天,我将通知使用NoScript标签。我看到它们仍然可以在HTML5中使用,但它们似乎正在出路。是否有一种新的/首选的处理这种情况?

谢谢。

带有更多的HTML5东西,JavaScript并不需要太多。例如,表单验证不再需要JS。音频/视频不再需要JavaScript或Flash。等等。

但是,<noscript>仍然是通知人们某些功能需要JavaScript的最可靠的方式。替代方法是将"需要JavaScript"放在页面中,然后使用JavaScript将其删除。

过去,我在页面之前使用重定向进行了此操作。

类似于您的表单的window.location(),它们是一个页面上的元编写标签,说它不支持它。

问题是,如果没有JavaScript,您如何隐藏或防止页面上的内容。

您可以在同一页面上做我建议的事情。默认情况下有一个元刷新负载,然后将JavaScript停止。

或也许有JavaScript设置一个隐藏的变量,然后您可以阻止表单服务器端。

只是一些选项。除了使用NoScript标签,但这可能是最好的。

您应该始终在服务器端提供验证,并返回带有JavaScript的任何验证错误。JavaScript验证绝不应作为实际数据验证。

话虽如此,您可以简单地将表格呈现在输入上的disabled属性,而formnoscript消息无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>

最新更新