首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止提交表单的Javascript

问停止提交表单的Javascript
EN

Stack Overflow用户
提问于 2017-02-16 17:56:23
回答 2查看 56关注 0票数 0

如果Javascript被关闭,是否有可能阻止表单被提交?我知道你可以做隐藏表演的事。但是,如果Javascript被关闭,是否有可能确保表单无法提交?因为所有的人都要做的是点击f12,看看他们想要什么。我知道人们会告诉我服务器端验证,但我很好奇是否有人会使用Javascript或Jquery做任何特殊的事情,除了显示和隐藏。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-16 18:39:29

如果关闭JavaScript,是否可以确保表单无法提交?

是。

您需要做的是在默认情况下不使用提交机制构建表单,以便那些没有JavaScript的人不能提交表单,而那些启用了JavaScript的表单将被允许提交,因为您将使用JavaScript修改表单并将其提交。

例如,确保表单不包含输入或提交类型的按钮,也不包含没有类型属性的按钮( <button>的默认类型属性是submit)。您还需要有一个具有多个文本输入的表单,因为大多数浏览器都会提交一个基本表单,按下enter键。这对这.

然后,使用JavaScript,您可以通过多种方式修改文档,以启用表单的提交。例如,添加(或更改)输入或按钮类型,使其具有提交类型。示例

但是请注意,这不会阻止任何人使用浏览器的控制台修改您的代码和提交表单,或者可能尝试从他们控制的服务器提交跨站点脚本。

票数 1
EN

Stack Overflow用户

发布于 2017-02-16 18:39:10

您可以删除事件提交按钮!

编写css类“noscript”以形成容器,并编写样式以删除按钮提交中的事件--如果js打开--如果js关闭,窗体将正常工作--您的按钮没有您想要的事件。

不幸的是,如果您按下“输入”键,输入表单将被提交。

​

代码语言:javascript
复制
//default when js turned on remove class 'noscript'
//document.querySelectorAll('.noscript')[0].className = '';
//also need to remove onsubmit attribute

//for test case not remove class 'noscript' 
//js turned off
代码语言:javascript
复制
.noscript button{
  pointer-events:none;
}
代码语言:javascript
复制
<div class="noscript">
  <form onsubmit="return false;">
    <input value='smth'>
    <button>
      Submit
    </button>
  </form>
</div>

​

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42281379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档