【问题标题】:JavaScript & c# - How to check value of hidden elementJavaScript & c# - 如何检查隐藏元素的值
【发布时间】:2012-08-20 21:11:08
【问题描述】:

有(假设是)一个标签或文本框处于隐藏模式,后面的代码将设置(文本值)为“用户”或“管理员”。

当给定表格行 (<tr>) 上没有设置 runat="server" 属性的点击事件时,我希望能够让 JavaScript 验证(隐藏的)文本框/标签的值。

如果客户端尝试点击该行(实际上该行有几个文本框元素) 所以如果客户尝试编辑例如点击行 然后将采取像alert("no edit allowed")这样的js函数所采取的行动。

<tr id="TR_editTimein" onClick="javascript:CheckIfManager();">
    <td> <input type="text" id="timeIn" /></td>
</tr>
  1. 如果后面的代码识别出经理(来自Request.QueryString),它会将隐藏的 LBL 或 TXTBX 设置为“经理”

  2. TR_editTimein 上的 JavaScript onClick 事件将触发 CheckIfManager() 功能

  3. CheckIfManager() 将询问隐藏元素的值,如果值为“用户”,它将发出警报(“非经理没有编辑选项”)

现在,如果我将 aspTextBox 设置为 Visible=false,会发生什么情况 JavaScript 也看不到它。

验证客户是用户还是经理的正确方法是什么?

【问题讨论】:

    标签: javascript asp.net code-behind


    【解决方案1】:

    如果您设置Visible=False,ASP.NET 控件甚至不会在浏览器(客户端)中呈现。这意味着 DOM 将没有该对象,因此您无法使用 getElementById 获取该对象。

    替代方法是使用呈现为input type='hidden'asp:HiddenField

    如果你有坚定不移的需要来使用asp:Labelasp:TextBox,像这样从代码隐藏中设置display:none;

    myLabelID.Attributes.Add("style","display:none");
    

    这样对象将在浏览器中呈现并隐藏用户,允许您使用 JavaScript 获取该对象。

    【讨论】:

    • 听起来是正确的计划!非常感谢你,Naveen 会尝试两者(:
    猜你喜欢
    • 2017-08-01
    • 1970-01-01
    • 2015-11-05
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    相关资源
    最近更新 更多