私はRadioButtonListを持っていて、何が選択されているかに基づいて、何か別のことをするためにTextBoxが必要です。最初のListItemが選択されている場合は、4つの数値だけを入力できるようにTextBoxが必要です。 2番目のListItemが選択されている場合、TextBoxが通常どおり機能するようにする必要があります。数値と長さの検証のための関数を持っていますが、選択されているものに基づいてそれらを実装する方法を理解できないようです。私は以下のコードで数値と長さの関数を含めました。私が持っている主な問題は、選択されているものとその選択に基づいて、TextBoxがどのように動作するかを判断することです。RadioButtonListの選択に基づいて行うTextBoxの決定方法 - JavaScriptを使用する
// Only allows numeric values
function isNumeric(num){
var charCode = (num.which) ? num.which : event.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) { return false; }
else { return true; }
}
// Validates TextBox Length
function validateTextBoxLength() {
var tb = document.getElementById("TextBox1").value;
if (tb.length > 1 && tb.length != 4) {
alert("TextBox must be 4 digits.");
return false;
}
return true;
}
// Check for RadioButtonList selection
function rbSelectedValue() {
var radio = document.getElementsByName('<%= rblSearchType.ClientID %>');
var tb = document.getElementById("TextBox1").value;
for (var i = 0; i < radio.length; i++) {
if (radio[i].checked) {
// alert("RadioButton 1 Selected");
if (tb.length > 1 && tb.length != 4) {
alert("TextBox must be 4 digits.");
return false;
}
else {
return true;
}
}
else {
// alert("RadioButton 2 Selected");
return true;
}
}
<asp:RadioButtonList ID="RadioButtonList" runat="server" AutoPostBack="true" RepeatDirection="Horizontal" onclick="rbSelectedValue()">
<asp:ListItem Value="List Item 1" Selected="True">Test 1</asp:ListItem>
<asp:ListItem Value="List Item 2">Test 2</asp:ListItem>
</asp:RadioButtonList>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
ご協力いただけると幸いです。
私はこれを追加しようとしましたが、まだそれを動作させるように見えません。それはエラーを投げていません、私はコードを踏んで、普通のものを見ていません。 OnSelectedIndexChangedイベントについてどう思いますか? – Brian
@Brian:どちらの部分がうまくいきませんか? –
どのListItemを選択しても、TextBoxに必要なものを入力することができます。関数にブレークポイントを置くと、 "if"ステートメントをスキップしてtrueを返します。 - "radio [i] .checked"は未定義として表示されます。 – Brian