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

时间:2012-10-22 17:43:39

标签: javascript html5

我有一个我正在创建的表单,由于它的敏感性,我正在进行相当多的javascript验证,如果没有启用JS,我不能允许用户在表单上启动。回到那一天,我会发出关于使用NOSCRIPT标签的通知。我发现它们仍然可以在HTML5中使用,但它们似乎正在逐渐消失。是否有新的/首选的方式处理这种情况?

感谢。

3 个答案:

答案 0 :(得分:2)

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

但是,<noscript>仍然是告知用户某些功能需要JavaScript的最可靠方式。另一种方法是在页面中放置“需要JavaScript”文本,然后使用JavaScript将其删除。

答案 1 :(得分:0)

过去我在页面之前通过重定向完成了这项工作。

类似于window.location()到你的表单,它们是一个元刷新标记,指向它不支持它的页面。

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

您可以在同一页面上执行我建议的操作。默认情况下有一个元刷新加载,然后让javascript停止它。

或者也许有javascript设置隐藏变量然后你可以阻止表单服务器端。

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

答案 2 :(得分:0)

您应始终在服务器端提供验证,并返回任何无javascript验证错误。永远不应该依赖Javascript验证作为实际数据验证。

话虽如此,您只需在输入中使用disabled属性呈现表单,而对actionform消息不使用noscript,然后使用javascript将操作添加到表单并删除禁用属性。

<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>