我有一个场景,其中有4个文本框和一个单选按钮列表。如果我通过离开所有字段单击“提交”按钮,它应该提醒我。我为文本框使用了4个Required Validator,为单选按钮列表使用了java脚本函数。
我的标记语言和功能是:
function Validate() {
var radio = document.getElementsByName("rdbGender");
for (var i = 0; i < radio.length; i++) {
if (radio[i].checked) {
return true;
}
else
{
alert("Choose a Gender");
return false;
}
}
}
Aspx页面是:
<asp:Button ID="btnSave" Text="Save" runat="server" Width="50px" OnClientClick= "Validate()"
OnClick="btnSave_Click" />
当我通过将fiealds留空来点击按钮,并且在没有选择项目的情况下离开单选按钮列表时,它正在发出警报但是如果我按下它则进一步执行。我在一个网站上读到,如果我们写#34;返回true&#34;在显示警报并单击确定后它将进一步执行,但我写了&#34;返回false&#34;警告之后意味着直到我检查一个它不应该执行的单选按钮...我错在哪里?
Javascript:
<script type="text/javascript">
function Validate() {
var checkedVal = false;
var radio = document.getElementsByName("rdbGender");
for (var i = 0; i < radio.length; i++) {
if (radio[i].checked) {
checkedVal = true;
return checkedVal;
}
else {
alert('Chhooose gender');
return checkedVal;
}
}
}
</script>
标记设计:
<tr>
<td>
Gender
</td>
<td>
<asp:RadioButtonList ID="rdbGender" RepeatDirection="Horizontal" runat="server">
<asp:ListItem Value="MALE">
</asp:ListItem>
<asp:ListItem Value="FEMALE">
Female
</asp:ListItem>
</asp:RadioButtonList>
</td>
</tr>
.
.
.
.![enter image description here][2]
<td>
<asp:Button ID="btnSave" Text="Save" runat="server" Width="50px" ValidationGroup="Star" OnClientClick="return Validate()"
OnClick="btnSave_Click" />
</td>
答案 0 :(得分:2)
在调用客户端函数时尝试使用return
。
<asp:Button ID="btnSave" Text="Save" runat="server" Width="50px"
OnClientClick= "return Validate();"
OnClick="btnSave_Click" />
对于for的第一次迭代,如果没有选中第一个单选按钮,它将转到显示警告并返回false的else部分。请执行以下代码。
function Validate() {
var checkedval=false;
var radio = document.getElementsByName("rdbGender");
for (var i = 0; i < radio.length; i++) {
if (radio[i].checked) {
checkedval=true;
return checkedval;
}
}
return checkedval;
}
答案 1 :(得分:1)
一个函数只能有一个返回值。执行return true
时,函数立即返回true并停止进一步。因此,请注释返回true并尝试。
function Validate() {
var radio = document.getElementsByName("rdbGender");
for (var i = 0; i < radio.length; i++) {
if (radio[i].checked) {
//return true;
//this return true causes the problem.
}
else
{
alert("Choose a Gender");
return false;
}
}
}