我有一个带有radiobuttonlist的两个文本框。如果两个测试都是空白,它应该警告“文本框是空白的”,如果它不是空白,它应该警告“日期已启用”。
这是我用javascript试过的
function checked() {
var radio = document.getElementById('<%=rbtn1.ClientId%>');
var cal1 = document.getElementById('<%=textstqo.ClientId%>').value;
var cal2 = document.getElementById('<%=textedqo.ClientId%>').value;
if (radio.checked = true) {
if(cal1 == '' && cal2 =='')
{
alert("dates cannot be blank");
return false
}else
{
alert("dates are enabled");
return true
}
}
}
单选按钮列表
<asp:RadioButtonList ID="rbtn1" runat="server" RepeatDirection="Vertical" RepeatLayout="Table" Height="300px" Width="101px" onClick="checked()" >
<asp:ListItem Text="one" Value="one" Enabled="true"></asp:ListItem>
<asp:ListItem Text="two" Value="two" Enabled="true" ></asp:ListItem>
<asp:ListItem Text="three" Value="three" Enabled="true"></asp:ListItem>
编辑 错误:预期的功能
第一个警报正在工作。当我尝试检查其他部分的警报时,它会显示上述错误 我只向您展示了第一个“quaterone”单选按钮,javascript也适用于quaterone
任何人都可以告诉我我做错了什么。谢谢提前
答案 0 :(得分:1)
问题是您使用错误的ID作为单选按钮。 '<%=rbtn1.ClientId%>_Quaterone'
请改为:'<%=rbtn1.ClientId%>'
<强> 编辑: 强>
var radioCont = document.getElementById('<%=rbtn1.ClientId%>');
var radio = radioCont.getElementsByTagName('input')[0];//first radio
此外,您正在尝试分配值而不是比较:
if (radio.checked = true) { //assignment
试试这个:
if (radio.checked == true) { // though `===` is recommended over `==`
您也可以尝试:
if(radio.checked) {
// to do here
}
将属性更改为onchange
而不是onclick
,此处为:
onClick="checked()" >
为了取消选中收音机为其状态指定false:
alert("dates cannot be blank");
radio.checked = false; //un-check the radio
return false;
答案 1 :(得分:0)
要仅在选中第一个单选按钮时进行验证,您可以将其检查为
if($('#rbtn1 input:radio:checked').val() == 'quaterone'){
// your condition here...
}