有(假设是)标签或文本框处于隐藏模式,后面的代码会将(文本值)设置为“用户”或“经理”。
当给定表格行 ( <tr>
) 没有 runat="server"
时,我希望能够让 JavaScript 验证(隐藏)文本框/标签的值是什么属性集。
如果客户端试图点击该行(实际上该行有一些文本框元素)
所以如果客户尝试编辑例如单击该行
然后由 js 函数采取的操作 alert("no edit allowed")
将被采取。
<tr id="TR_editTimein" onClick="javascript:CheckIfManager();">
<td> <input type="text" id="timeIn" /></td>
</tr>
如果后面的代码识别出一个经理(来自
Request.QueryString
),它会设置隐藏的 LBL 或 TXTBX 值为“经理”JavaScript
onClick
事件结束TR_editTimein
将触发CheckIfManager()
函数CheckIfManager()
将询问隐藏元素的值,如果值为“用户”,它将发出警报(“非经理无编辑选项”)
现在,如果我将 aspTextBox 设置为 Visible=false
会发生什么?
JavaScript 也看不到它。
验证客户是用户还是管理员的正确方法是什么?
最佳答案
如果您设置 Visible=False
,ASP.NET 控件甚至不会在浏览器(客户端)中呈现。这意味着 DOM 将没有该对象,因此您无法使用 getElementById
获取该对象。
替代方法是使用呈现为 input type='hidden'
的 asp:HiddenField
。
如果您有坚定不移的需要使用asp:Label
或asp:TextBox
设置display:none;
来自这样的代码隐藏
myLabelID.Attributes.Add("style","display:none");
这样,该对象将在浏览器中呈现并向用户隐藏,从而允许您使用 JavaScript 获取该对象。
关于JavaScript & C# - 如何检查隐藏元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12124051/