データバインドされたRadioButtonListを含むASP.NETWebページがあります。デザイン時にレンダリングされるラジオボタンの数がわかりません。 JavaScriptを介してクライアントでSelectedValueを決定する必要があります。私はあまり運がなくて次のことを試しました:
var reasonCode = document.getElementById("RadioButtonList1");
var answer = reasonCode.SelectedValue;
(「answer」は「undefined」として返されます)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()
私は常にソースを表示します。各ラジオボタンアイテムには、操作できる一意のIDがあり、それらを繰り返し処理して、チェックされているものを特定します。
編集:例を見つけました。ラジオボタンリストrbSearchがあります。これは、ReportFilterと呼ばれるascxにあります。ビューソースで私は見る
ReportFilter1_rbSearch_0
ReportFilter1_rbSearch_1
ReportFilter1_rbSearch_2
したがって、document.getElementById( "ReportFilter1_rbSearch_" + idx)をループするか、switchステートメントを使用して、どちらが.checked = trueであるかを確認できます。
RadioButtonList
はASP.NETサーバーコントロールです。これにより、JavaScriptを使用して操作しようとしているラジオボタンを含むHTMLがブラウザにレンダリングされます。
IE開発者ツールバー (Internet Explorerを好む場合)または Firebug (FireFoxを好む場合)のようなものを使用して、HTML出力を検査し、のIDを見つけることをお勧めします。 JavaScriptで操作するラジオボタン。
次に、JavaScriptのdocument.getElementByID("radioButtonID").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;
}
}
UniqueIDは、コントロール内の入力の名前を指定するプロパティであるため、入力を非常に簡単に確認できます。
ASP.NET RadioButtonListに相当するHTMLは、同じ名前属性を持つ<input type = "radio">のセットです(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'と 'no'の2つの値のみを持つ 'RadioButtonListの場合、これを実行しました。
var chkval=document.getElemenById("rdnPosition_0")
ここで、rdnposition_0はyes ListItem
のIDを参照します。フォームのソースコードを見て入手しました。
次に、chkval.checkedを実行して、値「はい」がチェックされているかどうかを確認しました。
reasonCode.options[reasonCode.selectedIndex].value
ShowShouldWait
スクリプトを実行したかったのは、Page_ClientValidate
はtrue
でした。スクリプトの最後に、有効でない場合にpostback
イベントを防ぐために、bの値が返されます。
興味がある場合は、ShouldShowWait
呼び出しを使用して、選択した出力タイプが「CSV」ではなく「HTML」の場合にのみ「お待ちください」div
を表示します。
onclientclick="var isGood = Page_ClientValidate('vgTrxByCustomerNumber');if(isGood){ShouldShowWait('optTrxByCustomer');} return isGood"
から ここ :
if (RadioButtonList1.SelectedIndex > -1)
{
Label1.Text = "You selected: " + RadioButtonList1.SelectedItem.Text;
}
私は、JavascriptでRadioButtonListのSelectedValueを決定するさまざまな方法を試してみました。次に、WebページのHTMLを調べたところ、ASP.NETがRadioButtonListコントロールを単一列のHTMLテーブルとしてWebページにレンダリングしていることがわかりました。
<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ではノードと呼ばれます)内でそれを参照する必要があります。各ListItemは、その行の最初の(ゼロ)セルの最初の(ゼロ)要素としてレンダリングされます。
この例では、RadioButtonListをループして、SelectedValueを表示します。
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を操作することは、通常のテーブルを操作することと非常によく似ています。私が言うように、私はそこにある他のほとんどの解決策を試しましたが、これが私のために働く唯一のものです。
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;
}
}