如何防止输入值以表格形式提交?

时间:2016-08-23 08:27:46

标签: javascript asp.net forms

我有ASP.Net Application简单WebForms。有一些页面用于插入和更新数据库中的记录。

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

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

代码:

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

现在,我想要的是如果我可以阻止在表单中提交元素值,那么我的问题就可以轻松解决了。我无法在每个页面添加条件&# 34;如果控件被禁用则不应该更新。&#34; 有很多页面,我必须在每一页都做同样的工作。如果有共同的解决方案,那就更好了。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果不应更新输入控件值,请不要通过设置Visible="false"来呈现控件。

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