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と値を確認できます。

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

質問が解決されたことは知っていますが、他の人に役立つ場合に備えてこの解決策を投稿してください。

しかし、ここでは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 に答える
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 に答える
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 に答える