16

データバインドされた RadioButtonList を含む ASP.NET Web ページがあります。設計時に表示されるラジオ ボタンの数がわかりません。JavaScript を介してクライアントの SelectedValue を決定する必要があります。私はあまり運がなくても次のことを試しました:

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

(「回答」は「未定義」として返されています) JavaScript の無知を許してください。

前もって感謝します。

4

13 に答える 13

40

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);
  }
于 2009-02-23T22:35:53.923 に答える
15

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

var selectedvalue = $('#<%= yourRadioButtonList.ClientID %> input:checked').val()
于 2012-12-18T10:22:02.963 に答える
3

私は常にソースを表示します。各ラジオ ボタン項目には、操作できる一意の ID があり、それらを繰り返し処理して、どれがチェックされているかを判断します。

編集:例が見つかりました。ラジオ ボタン リスト rbSearch があります。これは ReportFilter と呼ばれる ascx にあります。ソースを見る

ReportFilter1_rbSearch_0
ReportFilter1_rbSearch_1
ReportFilter1_rbSearch_2

したがって、document.getElementById("ReportFilter1_rbSearch_" + idx ) をループするか、switch ステートメントを使用して、どれが .checked = true であるかを確認できます。

于 2009-02-23T22:19:30.827 に答える
1

ASP.NET RadioButtonListに相当するHTMLは、同じ名前属性を持つ<input type = "radio">のセットです(RadioButtonListのIDプロパティに基づく)。

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

alert( document.getElementsByName('RadioButtonList1') [0].checked );
于 2009-02-23T22:43:30.003 に答える
1

この問題に最も簡単な解決策を追加したいと思います。

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 は、コントロール内の入力の名前を与えるプロパティであるため、非常に簡単に確認できます。

于 2013-02-28T10:11:14.980 に答える
1

「はい」と「いいえ」の 2 つの値しかない「RadioButtonList」の場合、次のようにしました。

var chkval=document.getElemenById("rdnPosition_0")

ここで rdnposition_0 は yes の ID を参照しますListItem。フォームのソースコードを見てわかった。

次に、chkval.checked を実行して、値「Yes」がチェックされているかどうかを確認しました。

于 2010-07-07T10:18:12.747 に答える
1
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;
}
于 2011-12-22T08:34:59.220 に答える
1

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

IE Developer Toolbar (Internet Explorerを使用する場合) またはFirebug (FireFox を使用する場合) などを使用して、HTML 出力を検査し、JavaScript で操作するラジオ ボタンの ID を見つけることをお勧めします。

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

于 2009-02-23T22:13:44.957 に答える
0

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;
    }
}
于 2019-02-28T07:19:58.137 に答える
0

私は、RadioButtonList の SelectedValue を Javascript で決定するさまざまな方法を試しましたが、喜びはありませんでした。次に、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 を操作することは、通常のテーブルを操作するのと非常によく似ています。私が言うように、私はそこにある他のほとんどのソリューションを試しましたが、これが私のために働く唯一のものです.

于 2013-10-04T01:23:27.657 に答える
0

が の場合にShowShouldWaitのみスクリプトを実行したかったのです。スクリプトの最後に、b の値が返され、有効でない場合にイベントが発生するのを防ぎます。Page_ClientValidatetruepostback

興味のある方のために、選択された出力タイプが「CSV」ではなく「HTML」である場合ShouldShowWaitにのみ、「お待ちください」を表示するために呼び出しが使用されます。div

onclientclick="var isGood = Page_ClientValidate('vgTrxByCustomerNumber');if(isGood){ShouldShowWait('optTrxByCustomer');} return isGood"
于 2016-09-07T18:50:30.267 に答える
0
reasonCode.options[reasonCode.selectedIndex].value
于 2009-02-23T22:13:54.163 に答える
-1

ここから:

if (RadioButtonList1.SelectedIndex > -1) 
{
    Label1.Text = "You selected: " + RadioButtonList1.SelectedItem.Text;
}
于 2009-02-23T22:24:06.057 に答える