Javascript更改单选按钮的文本

时间:2013-03-08 06:37:10

标签: asp.net javascript

我在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和值。

6 个答案:

答案 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。这项工作适合我。