2017-07-28 3 views
0

クリックするとラジオボタンがチェックされて表示されませんが、JavaScriptが完全に動作しています。 WebページからAlt + Tabを離してAlt + Tabを押した場合、ラジオボタンの周囲に影の付いた円が表示されますが、適切なチェックフィルは表示されません。どうしてこれなの?JavaScript関数を呼び出すときにASPラジオボタンが選択されないonClick

これは簡単な修正だと思っています。 ASPコードビハインドがポストバックを発行していて、ページの一部のコントロールをクリアしていたときに、JavaScriptの関数を呼び出すためにaspラジオボタンを更新しました。言うまでもなく、asp c#コードビハインド機能では、クリックするとラジオボタンが正しくチェックされていました。 JavaScript機能を使用してクリックすると、ラジオボタンのチェックが表示されます。

<div class="col s12 form-section" id="crimeInsurance"> 
      <h4 class="section-heading">CRIME INSURANCE</h4> 
      <p> 
       <asp:RadioButton ID="radLLCrimeIns" runat="server" GroupName="CrimeInsurance" ClientIDMode="Static" CssClass="with-gap" OnClick="return CrimeInsuranceToggle();" AutoPostBack="true" text="ACCEPT Crime Insurance (fee of $250.00)" /> 
      </p> 
      <p> 
       <asp:RadioButton ID="radLLNOCrimeIns" runat="server" GroupName="CrimeInsurance" ClientIDMode="Static" CssClass="with-gap" OnClick="return CrimeInsuranceToggle();" AutoPostBack="true" text="DO NOT ACCEPT Crime Insurance" /> 
      </p> 
     </div> 

とここに私のJavaScriptのメソッドです:

function CrimeInsuranceToggle() { 
     //controls the crime insurance radio yes/no buttons to update crime insurance fees 
     var oCrimeRte = document.getElementById("lblCrimeCovFlatRate"); 
     var oCrimeTtl = document.getElementById("lblCrimeCovAmtDue"); 
     var oCrimeY = document.getElementById("radLLCrimeIns"); 
     var oCrimeN = document.getElementById("radLLNoCrimeIns"); 

     var radios = document.getElementsByTagName('input'); 
     var value; 
     for (var i = 0; i < radios.length; i++) { 
      if (radios[i].type === 'radio' && radios[i].checked) { 
       //find each radio that is checked, and act on the ID 
       value = radios[i].value; 
       if (value == 'radLLCrimeIns') { 
        oCrimeTtl.innerHTML = oCrimeRte.innerHTML; 
        radios[i].checked = true; 
       } 
       else if (value == 'radLLNOCrimeIns') { 
        oCrimeTtl.innerHTML = "0.00"; 
        radios[i].checked = true; 
       } 
      } 
     } 

     return false; 
    } 

ヘルプは非常に高く評価されるが、ここに私の無線制御HTMLです。

+0

を任意のメッセージをこれらのラジオボタンの1つをクリックすると、ブラウザの開発者ツールコンソールが表示されますか? –

+0

これらのasp:RadioButtonコントロールによって出力される実際のHTMLを投稿できますか? –

答えて

1

この関数は常にfalseを返し、ラジオボタンがチェックされないようにします。

この(テストしていない)のような何か試してみてください:

マークアップ(私は関数への要素の参照を渡すに注意してください):

<div class="col s12 form-section" id="crimeInsurance"> 
    <h4 class="section-heading">CRIME INSURANCE</h4> 
    <p> 
    <asp:RadioButton ID="radLLCrimeIns" runat="server" GroupName="CrimeInsurance" ClientIDMode="Static" CssClass="with-gap" OnClick="return CrimeInsuranceToggle(this);" AutoPostBack="true" text="ACCEPT Crime Insurance (fee of $250.00)" /> 
    </p> 
    <p> 
    <asp:RadioButton ID="radLLNOCrimeIns" runat="server" GroupName="CrimeInsurance" ClientIDMode="Static" CssClass="with-gap" OnClick="return CrimeInsuranceToggle(this);" AutoPostBack="true" text="DO NOT ACCEPT Crime Insurance" /> 
    </p> 
</div> 

Javascriptを:中

function CrimeInsuranceToggle(rdo) { 
    //controls the crime insurance radio yes/no buttons to update crime insurance fees 
    var oCrimeRte = document.getElementById("lblCrimeCovFlatRate"); 
    var oCrimeTtl = document.getElementById("lblCrimeCovAmtDue"); 

    //find each radio that is checked, and act on the ID 
    if (rdo.id == 'radLLCrimeIns') { 
    oCrimeTtl.innerHTML = oCrimeRte.innerHTML; 
    } else if (rdo.id == 'radLLNOCrimeIns') { 
    oCrimeTtl.innerHTML = "0.00"; 
    } 

    return rdo.checked; 
} 
関連する問題