从 InnerHTML 获取输入值
Posted
技术标签:
【中文标题】从 InnerHTML 获取输入值【英文标题】:Get values of input from InnerHTML 【发布时间】:2018-12-16 19:38:57 【问题描述】:我在从 C# 中的输入中获取值时遇到问题。我有一个场景,一些用户看到不同的表。每个用户都有自己的批准级别(从 1 到 5)。
switch (levelofapprove_converted)
//HiringManager
case 1:
id_hiringmanager_div.Innerhtml = @"<table class=""table"" id=""id_hiringmanager"" runat=""server"">
<td style=""height: 37px""><input type=""checkbox"" class=""form-check-input"" id=""id_check_claims"" runat=""server""></td></table>";
break;
//IT
case 2:
id_hiringmanager_div.InnerHtml = @" <table class=""table"" id=""id_IT"" runat=""server"">
<tr>
<td style=""color: rgb(0,0,0); height: 37px;"">Delete User Access Rights</td>
<td style=""height: 37px""><input type=""checkbox"" class=""form-check-input"" id=""id_check_access_rights"" runat=""server""></td>
</tr>
</table>";
break;
这是一个外观设计,我使用 InnerHtml 为每个人使用不同的表格填充 div。
<div runat="server" id="id_hiringmanager_div"></div>
<table class="table">
<tr>
<td colspan="2">
<button class="btn btn-primary btn-lg btn-block" onserverclick="btn_approve_Click" runat="server">Approve</button>
</td>
</tr>
</table>
因此,当我尝试从复选框中获取价值或调用 OnclickEvent 时,什么都没有发生。错误列表说没有看到这样的控制。 以下是我尝试调用它们的方式:
bool check_pending_leave = id_check_pending_leave.IsChecked;
【问题讨论】:
您在休息前缺少引号;这是错字吗? 你的复选框也没有 runat="server",如果没有 runat server 标志,你不能从代码隐藏中调用它。 我刚刚从源代码中删除了很多问题,代码,这是一个错字 @SehaxX 的问题是它在这个内容中看不到任何输入 您的意思是,您的 id_hiringmanager_div 对于所有情况都是空的? 【参考方案1】:所以您的问题是您正在通过字符串创建输入。我建议的 runat="server" 也无济于事,因为服务器不知道它们是创建的。
您必须选择: 首先是在 aspx/ascx 文件中创建 html 标记并将它们放入 asp:panel 并使用您拥有的代码隐藏逻辑隐藏/显示它们。
或者你像开始那样做,并在输入中添加标签 name="id_check_claims",然后在后面的代码中你需要调用输入,如:
//IMPORTANT: if checked it will return "on", not 1 or true
var strValue = Page.Request.Form["id_check_claims"];
希望这会有所帮助。
【讨论】:
【参考方案2】:取一个隐藏字段(服务器端变量)值来设置复选框点击事件的复选框值。
<asp:HiddenField ID="hdnClaim" runat="server" ClientIDMode="Static" Value="0" />
<script type="text/javascript">
function onclaim()
var idchkclaim = document.getElementById("id_check_claims");
document.getElementById("hdnClaim").value = idchkclaim.checked == true ? "1" : "0";
</script>
在服务器端访问获取隐藏字段的值。
【讨论】:
以上是关于从 InnerHTML 获取输入值的主要内容,如果未能解决你的问题,请参考以下文章
document.getElementById("test").value 和 document.getElementById("test").innerHTM
Sencha Touch 2:如何从面板获取 HTML 以及输入值