如何防止输入值在表单中被提交

How to prevent input value to be submitted in form?

本文关键字:提交 表单 何防止 输入      更新时间:2023-09-26

我有一个简单的WebFormsASP.Net Application。有一些页面是用来插入和更新数据库中的记录的。

但是,在某些情况下,一些输入控件值不应该更新。因此,我设置了disabled属性以防止用户更新值。但是,用户也可以从开发工具中启用它并直接更改值。

如果我使用javascript从元素中删除name属性,则该控件的值将不会在表单中提交,并且不会在服务器端受到影响(它完美地工作)。但是,如果用户重新分配相同的值(,即: 'ctl00$ContentPlaceHolder2$txtBranchCode')在name属性中,那么输入框的值将再次提交(这不应该发生)

代码:

<td align="left">
    <input name="ctl00$ContentPlaceHolder2$txtBranchCode" type="text" value="HO" 
         id="ctl00_ContentPlaceHolder2_txtBranchCode">
</td>

现在,我想要的是,如果我可以防止在表单中提交元素值,那么我的问题可以很容易地解决。我不能在每个页面中添加条件"如果控件被禁用,那么它不应该被更新。"有很多页面,我必须在每一页做同样的工作。如果有共同的解决方案,那就更好了。

您不能信任客户端代码来控制数据库中的更新。您应该做的是编写一些服务器端代码来完成这项工作。客户端代码很容易被客户端操纵,你不能信任它。

在不应该更新输入控件值的情况下,不要通过设置Visible="false"来呈现控件。

服务器端验证更安全,而客户端验证提供更好的用户体验,因此存在权衡。理想情况下,两者都应该适当,通过客户端验证提供更好的用户体验,并通过服务器端验证保护服务器资源和数据库。