在我的頁面上我有一個單選按鈕列表和一個文本框。CustomValidator文本框需要radiobuttonlist選擇
默認情況下,該文本框處於隱藏狀態,如果用戶單擊是,則會顯示該文本框。一旦他們點擊是,那麼文本框必須填寫,然後才能繼續。
我已經把下面的代碼,但它似乎並沒有工作,當按下按鈕進入下一頁它繼續而不是停止,並要求用戶在框中輸入的東西。
function Q12iYes() {
document.getElementById('txt12i').style.display = "block"
}
function Q12iNo() {
document.getElementById('txt12i').style.display = "none"
}
<asp:RadioButtonList ID="rbtn12" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Value="Yes" onclick="Q12iYes()" /> <asp:ListItem Value="No" Selected="True" onclick="Q12iNo()" />
</asp:RadioButtonList>
<br />
12.i) If 'Yes' please provide details<br />
<br />
<asp:TextBox ID="txt12i" runat="server" Height="62px" TextMode="MultiLine" Width="343px"></asp:TextBox>
<br />
<asp:CustomValidator ID="MyTxtBoxValidator" runat="server" ControlToValidate="txt12i" ValidateEmptyText="true" ErrorMessage="Please enter some values into Textbox"
ClientValidationFunction="validateMyBtn" Display="Dynamic"> </asp:CustomValidator>
<script type="text/javascript">
function validateMyBtn(oSrc, args) {
var rbtnValue = null;
var rbtnList = document.getElementsByName('<%=rbtn12.ClientID %>');
var radio = rbtnList[0].getElementsByTagName("input");
for (var i = 0; i < radio.length; i++) { if (radio[i].checked) rbtnValue = radio[i].value; }
if (rbtnValue == "Yes") { args.IsValid = !(args.Value == "") }
else { args.IsValid = true; }
}
</script>
<asp:Button ID="btnContinue" runat="server" OnClick="btnContinue_Click" Text="Continue" />
我有看如何做到這一點,但沒有我看到了無論是工作,或者幫助我理解我要去哪裏錯了。
任何人都可以幫忙嗎?
您是否需要自定義驗證器?爲什麼不使用必需的字段驗證程序?如果輸入框不可見,則所需的字段驗證程序不會嘗試驗證。 – 2013-03-04 12:12:56
從我所有的搜索它似乎自定義驗證器是我需要的,因爲我使用JavaScript來顯示和隱藏文本框時,用戶選擇。我試圖找到最有效的方法。 – saintsfanuk 2013-03-04 12:36:22
你能夠使用jQuery嗎? – 2013-03-04 12:55:33