1

我在 Javascript 中使用以下方法。

Function JsChangeRBText(itemCheckBox, rbClientId)
{
   var optVal = document.getElementById(rbClientId);
   if(itemCheckjBox.checked)
   {
        optVal.innerText = 'abc';
    }       
   else
   {
        optVal.innerText = 'xyz';
    }       
}

这里 rbclientId 是单选按钮的客户端 ID。我想在复选框选中或未选中的条件下更改其文本。但是使用上面的代码我无法做到。我错过了什么。我也尝试过 innerHTML。当我使用警报使用 innerText 和 innerHTML 获取当前文本时,两者都是空白的。但在警报中,我可以看到 rbClientId 的 id 和 value。

4

6 回答 6

3
function JsChangeRBText(itemCheckBox, rbClientId)
{
   var optVal = document.getElementById(rbClientId);
   var label =  optVal.nextSibling;
   if(itemCheckjBox.checked)
   {
     label.value = "adc";;
   }       
   else
   {
     label.value = "ccc";
   }       
}
于 2013-03-08T06:57:56.723 回答
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'); 
于 2013-03-08T06:41:57.357 回答
1

首先像这样声明单选按钮

<input type="radio" id="rb" runat="server"/>
<label for="<%=rb.ClientID%>">option 1</label>

runat="server"我的意思是使用带有而不是的html单选按钮asp:RadioButton,这将确保按原样呈现控件,然后尝试这个

function JsChangeRBText(itemCheckBox, rbClientId)
{
   var optVal = document.getElementById(rbClientId);
   if(itemCheckjBox.checked)
   {
       optVal.nextSibling.value = 'abc';
    }       
   else
   {
       optVal.nextSibling.value = 'xyz';
    }       
}
于 2013-03-08T06:51:20.447 回答
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>
于 2013-03-08T07:36:06.863 回答
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>  
于 2013-03-08T07:17:14.867 回答
0
function JsChangeRBText(itemCheckBox, rbClientId)
{
   var optVal = document.getElementById(rbClientId);
   var label =  optVal.nextSibling;
   if(itemCheckjBox.checked)
   {
     label.textContent = "adc"; 
   }       
   else
   {
     label.textContent = "ccc";
   }       
}

使用文本内容。这对我有用。

于 2013-09-12T09:51:49.943 回答