我在Javascript中使用以下方法。
Function JsChangeRBText(itemCheckBox, rbClientId)
{
var optVal = document.getElementById(rbClientId);
if(itemCheckjBox.checked)
{
optVal.innerText = 'abc';
}
else
{
optVal.innerText = 'xyz';
}
}
这里rbclientId是单选按钮的客户端ID。我想在选中或未选中复选框的条件下更改其文本。但是使用上面的代码我无法做到。我失去了一些东西。我也尝试过innerHTML。当我使用alert来使用innerText和innerHTML获取当前文本时,两者都是空白的。但在警报中我可以看到rbClientId的id和值。
答案 0 :(得分:3)
function JsChangeRBText(itemCheckBox, rbClientId)
{
var optVal = document.getElementById(rbClientId);
var label = optVal.nextSibling;
if(itemCheckjBox.checked)
{
label.value = "adc";;
}
else
{
label.value = "ccc";
}
}
答案 1 :(得分:1)
HTML:
<input type="radio" /><label>Option 1</label>
或
<input type="radio" /><span>Option 1</span>
JS:
var $label = $('input[type=radio]').next();
$label.text('Options');
答案 2 :(得分:1)
首先声明像这样的单选按钮
<input type="radio" id="rb" runat="server"/>
<label for="<%=rb.ClientID%>">option 1</label>
我的意思是使用带runat="server"
而不是asp:RadioButton
的html单选按钮,这样可以确保按原样呈现控件,然后尝试使用
function JsChangeRBText(itemCheckBox, rbClientId)
{
var optVal = document.getElementById(rbClientId);
if(itemCheckjBox.checked)
{
optVal.nextSibling.value = 'abc';
}
else
{
optVal.nextSibling.value = 'xyz';
}
}
答案 3 :(得分:1)
我知道这个问题已经解决,但是如果它对其他人有用,可以发布这个解决方案。
但在这里我使用了Jquery
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
Function JsChangeRBText(itemCheckBox, rbClientId)
{
var optVal = document.getElementById(rbClientId);
if(itemCheckjBox.checked)
{
$("label[for='" + rbClientId + "']").text('abc');
}
else
{
$("label[for='" + rbClientId + "']").text('xyz');
}
}
</script>
答案 4 :(得分:0)
未经测试,但我认为这应该有效。如果它不起作用,请回复。
<asp:CheckBox
ID="CheckBox1"
runat="server"
Text="Set Radio Checked"
OnCheckedChanged="setText(this, document.getElementById('RadioButton1'))"
AutoPostBack="true"
/>
<asp:RadioButton
ID="RadioButton1"
runat="server"
Text="Red"
GroupName="group1"
/>
<script runat="server">
protected void setText(checkBox, radioBtn)
{
if (checkBox.Checked == true) {
radioBtn.Text = "abc";
}
else{
radioBtn.Text = "xyz";
}
}
</script>
答案 5 :(得分:0)
function JsChangeRBText(itemCheckBox, rbClientId)
{
var optVal = document.getElementById(rbClientId);
var label = optVal.nextSibling;
if(itemCheckjBox.checked)
{
label.textContent = "adc";
}
else
{
label.textContent = "ccc";
}
}
使用textContent。这项工作适合我。