禁用表单但保持可读性的最简单方法是什么?

时间:2011-06-08 19:51:17

标签: asp.net html

我在Panel中有我的表单字段,如果需要只读版本,我在Panel上设置Enabled = False。这很快,很脏,结果很脏,主要是在IE中。无法滚动大型ListBoxes。多行文本框仅显示前几行。禁用标签有一些时髦的风格。

您是否有任何关于如何禁用整个表单的想法,让用户读取数据,直观地指示它已被禁用(灰色输入或文本代替输入),但是对于服务器保持控件禁用所以它没有加载任何可以通过恶意手段启用字段来操纵的数据。

(另外,我希望我不必添加与每个数据字段对应的标签。)

3 个答案:

答案 0 :(得分:1)

您可以删除所有按钮并使用jQuery更改所有输入的背景颜色。这将是一个快速简便的解决方案。

$(':input').addClass('disabled');

答案 1 :(得分:0)

您可以为您的字段分配readonly属性,即:

<input type="text" name=myText value="Enter Your Name" readonly>

这可以通过js轻松完成,但如果在html中完成,则更加强大。

您也可以禁用甚至删除提交按钮。

答案 2 :(得分:0)

我会使用ASP 网络控件。输入类型的TextBox =“text”。 所有网络控件都具有已启用属性

<asp:TextBox id="txtSomething" runat="server" />

现在,您可以像现在一样启用/禁用代码中的所有控件(对于面板)。但是你必须为每一个人做这件事(我不知道你有多少人)。

txtSomething.Enabled = False

您也可以使用JavaScript执行此操作。 循环表单中的所有元素,并禁用/启用它们。

function DisableEnableForm(myForm,setDisable){
  elems = myForm.elements;
  for(i=0;i<elems.length;i++){
    elems[i].disabled = setDisable;
  }
}

您可以从ASP触发此JavaScript函数:

Button1.Attributes.Add("onclick", "javascript:DisableEnableForm(´form1´,true)");