JavaScript & C# - 如何检查隐藏元素的值

标签 javascript asp.net code-behind

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

当给定表格行 ( <tr> ) 没有 runat="server" 时,我希望能够让 JavaScript 验证(隐藏)文本框/标签的值是什么属性集。

如果客户端试图点击该行(实际上该行有一些文本框元素) 所以如果客户尝试编辑例如单击该行 然后由 js 函数采取的操作 alert("no edit allowed")将被采取。

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

  2. JavaScript onClick事件结束TR_editTimein将触发 CheckIfManager() 函数

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

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

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

最佳答案

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

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

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

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

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

关于JavaScript & C# - 如何检查隐藏元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12124051/

相关文章:

javascript - 当 Firebase 中父键未知时检索子记录

javascript - 压缩像素集的图像颜色空间

asp.net - 基于iPhone Phonegap的应用程序加载由Componentone组成的外部网站

asp.net - 网站重启时自动恢复/重新连接 SignalR 连接

ASP.NET 在没有回发的情况下更改中继器的数据源?

javascript - 从 javascript 访问 C#(代码隐藏)中的变量

c# - 在 asp.net 控件中,此上下文不支持代码块

javascript - JQuery 下拉行为

javascript - 为什么 jquery 正则表达式每次返回不同的测试用例?

c# - 如何将此查询转换为不等于版本