2017-02-16 240 views
0

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

+2

没有。服务器端的二级验证是防止这种情况的方法。 –

+1

当JavaScript关闭时,您无法使用JavaScript(以及扩展jQuery)执行_special things_,这首先会挫败选项的用途。当然,如果在浏览器中有一个错误仍然可以让你执行JavaScript,那么你可以_technically_。 – zwer

回答

1

你可以删除提交按钮上的事件!

写在CSS类“无脚本”,形成集装箱和写入样式删除按钮事件提交 如果JS - 您的形式将正常 工作如果JS关 - 只要你想

您的按钮没有活动不幸的是,如果你按 'ENTER' 输入表单将提交

//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
.noscript button{ 
 
    pointer-events:none; 
 
}
<div class="noscript"> 
 
    <form onsubmit="return false;"> 
 
    <input value='smth'> 
 
    <button> 
 
     Submit 
 
    </button> 
 
    </form> 
 
</div>

+0

如果js关闭,我们可以隐藏所有表单输入,表单不会通过输入提交 –

1

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

是的。

你需要做的是建立你的表单默认情况下没有提交机制,以便那些没有JavaScript的人不能提交表单,而启用了JavaScript的表单将被允许,因为你会使用JavaScript来修改表单并使它可以提交。例如,确保您的表单不包含输入或提交类型的按钮,并且没有没有类型属性的按钮(提交的<button>的默认类型属性)。您还需要拥有多个单一文本输入的表单,因为大多数浏览器都会通过按回车键提交基本表单。 This vs this

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

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