【问题标题】:Safest way to disable submit button?禁用提交按钮的最安全方法?
【发布时间】:2015-10-08 00:49:21
【问题描述】:

我正在做一些表单验证,目前正在禁用提交按钮,如下所示:

$("#button").prop('disabled', true);

不过,我想知道禁用按钮的最佳做法是什么。如果您只是使用 js/jQuery 禁用按钮,那么通过 AJAX 进行服务器端验证肯定没有意义 - 用户可以轻松地在浏览器中取消禁用按钮并继续使用。

最安全的方法是什么?

【问题讨论】:

  • “最安全”是什么意思?您的应用程序最安全的选择是在提交表单时在服务器端进行验证。您的前端应该专注于提供最佳的用户体验,而不是为了确保用户无法启用按钮而一蹶不振。

标签: javascript jquery ajax forms validation


【解决方案1】:

您应该始终在服务器端验证数据。

最终用户最终可以完全绕过浏览器并使用 fiddler,因此客户端验证可以方便地改善用户体验。

所以,禁用按钮应该没问题,但还要记住,在字段中按下输入/返回按钮也会在大多数浏览器中提交表单。

如果您指定的某些条件为真,以下内容将阻止提交。

$(document).ready(function(){ 
     $("#form1").submit(function(event){
      if(someCondition)
           event.preventDefault(); 
      });
});

【讨论】:

    【解决方案2】:

    $("#button").prop('disabled', true); 是在客户端禁用按钮的最佳方式。

    再次出现错误,您必须在后端处理之前验证所有内容。因此,您必须两次应用验证,

    1. 显示“输入有问题”,
    2. 最终在后端处理之前验证所有输入(当用户提交表单时)。

    【讨论】:

    • 两个 Bhavesh 在同一个帖子中,很高兴认识你的朋友!
    • 软件工程师,我们都是comp。在某种程度上科学测试大声笑
    猜你喜欢
    • 2011-05-10
    • 2013-03-09
    • 2010-09-07
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 2023-03-16
    • 2011-03-12
    • 1970-01-01
    相关资源
    最近更新 更多