どのように私はJavaScriptでRadioButtonListののSelectedValueのを確認できますか?

StackOverflow https://stackoverflow.com/questions/579597

質問

私は、データバインドされたRadioButtonListの持つASP.NET Webページを持っています。私は、設計時にレンダリングされますどのように多くのラジオボタンを知りません。私はJavaScriptを介してクライアントにSelectedValueのを決定する必要があります。私は多くの幸運なしで次のことを試してみた:

var reasonCode = document.getElementById("RadioButtonList1");
var answer = reasonCode.SelectedValue;  

(「答えは」「未定義」と返されています) 私のJavaScriptの無知を許すが、私は間違って何をやっているしてください?

事前に感謝します。

役に立ちましたか?

解決

ASP.NETは、テーブルと実際の無線入力の周りに他のマークアップの束をレンダリングします。以下は動作するはずです: -

 var list = document.getElementById("radios"); //Client ID of the radiolist
 var inputs = list.getElementsByTagName("input");
 var selected;
 for (var i = 0; i < inputs.length; i++) {
      if (inputs[i].checked) {
          selected = inputs[i];
          break;
       }
  }
  if (selected) {
       alert(selected.value);
  }

他のヒント

これはRadioButtonListのから選択された値を取得してください。

var selectedvalue = $('#<%= yourRadioButtonList.ClientID %> input:checked').val()

私はいつもソースの表示。あなたはと協力し、チェックされた1把握するためにそれらを反復処理することができますユニークなIDを持っているために、各ラジオボタンの項目があります。

編集:例を見つけました。私は、ラジオボタンリストrbSearchを持っています。これはReportFilterと呼ばれるASCXです。ソースの表示では、私が見る

ReportFilter1_rbSearch_0
ReportFilter1_rbSearch_1
ReportFilter1_rbSearch_2

だからのいずれかを行うことができ、ループのdocument.getElementById( "ReportFilter1_rbSearch_" + IDX)を介して、またはswitch文を持っている、と=真.checkedをしていた1参照。

RadioButtonListは、ASP.NETサーバーコントロールです。これは、JavaScriptを使用して操作しようとしているラジオボタンが含まれてブラウザにHTMLをレンダリングします。

私は IE Developerツールバーのようなものを使用してお勧めしますの(Internet Explorerを好む場合)または Firebugをする(あなたは、Firefoxを好む場合)HTML出力を検査して、JavaScriptで操作したいラジオボタンのIDを検索します。

次に、あなたはラジオボタンが選択されているかどうかを調べるためにJavaScriptからdocument.getElementByID("radioButtonID").checkedを使用することができます。

ASP.NET RadioButtonListのにHTML当量が、(RadioButtonListののIDプロパティに基づいて)同じ名前の属性でののセットである。

あなたはgetElementsByNameを使用してラジオボタンのこのグループにアクセスすることができます。 これは、インデックスを介してアクセスするラジオボタンのコレクションです。

alert( document.getElementsByName('RadioButtonList1') [0].checked );
function CheckRadioListSelectedItem(name) {

    var radioButtons = document.getElementsByName(name);
    var Cells = radioButtons[0].cells.length;

    for (var x = 0; x < Cells; x++) {
        if (document.getElementsByName(name + '_' + x)[0].checked) {
            return x;
        }
    }

    return -1;
}

yes「にのみ2値でRadioButtonListの 'の' と '' いいえ、私はこれをやっています:

var chkval=document.getElemenById("rdnPosition_0")

ここでrdnposition_0はいListItemのIDを指します。私は、フォームのソースコードを見ることでそれを得ています。

それから私は、値「はい」がチェックされているかどうかを知るためにchkval.checkedんでした。

私はこの問題への最も簡単な解決策を追加したいと思います:

var reasons= document.getElementsByName("<%=RadioButtonList1.UniqueID%>");
var answer;
for (var j = 0; j < reasons.length; j++) {
    if (reason[j].checked) {
        answer = reason[j].value;
    }
}

一意IDは、あなたが本当に簡単にチェックできるように、あなたがコントロール内の入力の名前を与えたプロパティがあります。

私は喜びとJavaScriptでRadioButtonListののSelectedValueのを決定するさまざまな方法を試してみました。それから私は、WebページのHTMLを見て、ASP.NETは、単一列のHTMLテーブルとしてWebページにRadioButtonListコントロールをレンダリングすることを実現!

<table id="rdolst" border="0">
  <tr>
    <td><input id="rdolst_0" type="radio" name="rdolst" value="Option 1" /><label for="rdolst_0">Option 1</label></td>
  </tr>
  <tr>
    <td><input id="rdolst_1" type="radio" name="rdolst" value="Option 2" /><label for="rdolst_1">Option 2</label></td>
  </tr>
</table>

Javascriptを経由RadioButtonListの上の個々のListItemにアクセスするには、該当する行に(JavaScriptでノードとして知られている)は、細胞の子コントロールの中にそれを参照する必要があります。各リストアイテムは、その行の最初の(ゼロ)セル内の最初の(ゼロ)要素としてレンダリングされます。

この例では、SelectedValueのを表示するために、RadioButtonListのをループ

var pos, rdolst;

for (pos = 0; pos < rdolst.rows.length; pos++) {
    if (rdolst.rows[pos].cells[0].childNodes[0].checked) {
        alert(rdolst.rows[pos].cells[0].childNodes[0].value);
        //^ Returns value of selected RadioButton
    }
}

RadioButtonListの中で最後の項目を選択するには、あなたはこれを行うだろう

rdolst.rows[rdolst.rows.length - 1].cells[0].childNodes[0].checked = true;

だから、JavaScriptでのRadioButtonListと対話することは非常に多く、通常のテーブルでの作業のようなものです。私はそこに他のソリューションのほとんどを試してみたと言うが、これは私の作品だけで同様ます。

私はShowShouldWaitPage_ClientValidateた場合にのみ、trueスクリプトを実行したかったです。スクリプトの終了時に、bの値は、それが有効でない場合にはpostbackイベントを防ぐために返されます。

誰でも好奇心旺盛である場合には、ShouldShowWaitコールは、選択した出力タイプは、「CSV」「HTML」であるとされていない場合、「お待ちください」divを表示のみに使用されます。

onclientclick="var isGood = Page_ClientValidate('vgTrxByCustomerNumber');if(isGood){ShouldShowWait('optTrxByCustomer');} return isGood"

JavaScriptでドロップダウンの選択されたインデックスを確認するには

function SaveQuestion() {
    var ddlQues = document.getElementById("<%= ddlQuestion.ClientID %>");
    var ddlSubQues = document.getElementById("<%=ddlSecondaryQuestion.ClientID%>");

    if (ddlQues.value != "" && ddlSubQues.value != "") {
        if (ddlQues.options[ddlQues.selectedIndex].index != 0 ||
            ddlSubQues.options[ddlSubQues.selectedIndex].index != 0) {
            return true;
        } else {
            return false;
        }
    } else {
        alert("Please select the Question or Sub Question.");
        return false;
    }
}
reasonCode.options[reasonCode.selectedIndex].value
scroll top