如何从插入到 innerHtml 的单选按钮中获取值
Posted
技术标签:
【中文标题】如何从插入到 innerHtml 的单选按钮中获取值【英文标题】:How can I get value from radio-button inserted into innerHtml 【发布时间】:2010-12-19 13:05:30 【问题描述】:我有一个带有单选按钮列的表格。我设法使单选按钮列动态插入到单元格中(如果重要,则为 div)。但是,在回发时,innerhtml 尚未更新为“已检查”属性。
您能否告诉我如何(在服务器上)找出单选按钮是否已被选中?
更多信息:这是在更新面板内的用户控件上。
This 会是关于我的主题的好帖子,但仍然无济于事
【问题讨论】:
在客户端还是在服务器上? 我假设服务器因为提到了“回发” 【参考方案1】:您不能使用标准的 asp:RadioButton 并使用 javascript 来确保它是互斥的。我之前通过向单选按钮添加自定义属性然后使用 js 函数取消选中具有该属性的所有项目,然后检查选定的项目来完成此操作。这解决了 IE 问题,该问题阻止 groupname 属性在不同容器中的单选框上工作。
radioButton.InputAttributes.Add("ClientGroupName", "grpRadioList");
radioButton.InputAttributes.Add("onclick",
string.Format(
"javascript:radiobuttonToggle('0','ClientGroupName','grpRadioList');"
,radioButton.ClientID));
并使用以下 JS 取消选中所有收音机,然后选中您想要的收音机。 请注意,我使用 InputAttributes 而不是 Attributes,因为单选按钮包装在 span 标签内,因此 InputAttributes 用于添加到实际输入控件而不是 span 的项目。
function radiobuttonToggle(selectedRB, attribName, attribValue)
var objRadio = document.getElementById(selectedRB);
for(i = 0; i < document.forms[0].elements.length; i++)
elm = document.forms[0].elements[i];
if (elm.type == 'radio')
if(elm.getAttribute(attribName) == attribValue)
elm.checked = false;
objRadio.checked = true;
然后,您可以将 radioButton.Checked 作为属性公开在您的 CS 文件中,并将其用作控件。
【讨论】:
【参考方案2】:查看Form.Request("radio-name") != null
只有在检查时才会得到一个非空值。
【讨论】:
Oleg,“radio-name”需要替换为您的复选框的“name”属性值(而不是 id 属性。) Request.Form[rbtnReplaced.ClientID] 还是 Request[rbtnReplaced.ClientID]?两者都为空 两者都不是。尝试找到“name”属性的值;不是 ID 属性。尝试在您的页面上查看源代码,以查看单选按钮的名称。【参考方案3】:确保您的页面元素在回发时正确重建。任何第一次插入单选按钮的绑定过程都必须重新运行,然后才能第二次访问它们。
【讨论】:
我可以看到innerHtml,但它看起来和我插入的一模一样。【参考方案4】:这是一个工作示例,首先我通过 you linked 方法将收音机添加到我的网络表单:
function addRadio()
try
rdo = document.createElement('<input type="radio" name="fldID" />');
catch(err)
rdo = document.createElement('input');
rdo.setAttribute('type','radio');
rdo.setAttribute('name','fldID');
document.getElementById('container').appendChild(rdo);
然后在后面的代码中,我只使用下面的代码来获取收音机的值:
string value = Request["fldID"];
因此,请确保您尝试获取服务器端单选按钮的名称。您应该在服务器端使用 name 属性,而不是 id。
【讨论】:
protected void Page_Init(object sender, EventArgs e) div.InnerHtml = ""; protected void Button1_Click(object sender, EventArgs e) Console.WriteLine(Request["gnReplace"]); 困惑于无论选择如何都返回的值“on”。如果 name 是所谓的 RadioGroup,我应该得到什么样的值?以上是关于如何从插入到 innerHtml 的单选按钮中获取值的主要内容,如果未能解决你的问题,请参考以下文章