日期:2014-05-19  浏览次数:20446 次

关于Javascript客户端验证!(急)
在页面中有一个GridView,其中有一列为模板列(CheckBox复选框),现在点击“Button确定”按钮,如果GridView中的所有CheckBox中有两个且只有两个复选框为选中状态,则可以执行相应操作,如果非两个复选框为选中状态,则弹出警告提示框,请问,这一段Javascript如何写?(注:此验证为客户端验证,验证不通过,弹出警告框而不刷新页面,这是关键)

------解决方案--------------------
var objs = document.getElementById( "GridUserInfo ").getElementsByTagName( "INPUT ");
var n = 0;
for(var i = 0;i <objs.length;i++)
{
if(objs[i].checked)
{
n++;
document.getElementById( "HiddenID ").value+=objs[i].value+ ", ";
}
}

if(n!=2)
{
alert( "选者有误 ");
return false
}
------解决方案--------------------
LS已经回答.就是遍历计算个数咯,没什么
------解决方案--------------------
如果你的验证很重要的话,我还是建议你到服务器去验证,不要用js,js只适合于不是很重要的验证。如果你想验证,但还不想刷新整个页面,可以考虑使用ajax。
=============================================================================
.net技术交流群 QQ:8793209,欢迎职业的程序员加入讨论交流!

------解决方案--------------------
在myGridV_RowDataBound事件中给每个checkbox注册个id
其他的用js实现
------解决方案--------------------
<asp:Button ID= "Button1 " runat= "server " OnClientClick= "return check " />

function check()
{
var inputs = document.getElementById( "GridView1 ").getElementsByTagName( "INPUT ");
var count=0;
for(var i=0;i <inputs.length;i++)
{
if(inputs[i].type == "checkbox " && inputs[i].checked)
count++;
}
if(count!=2)
{
alert( "error ");
return false;
}
}

------解决方案--------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN ">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE= "JavaScript ">
<!--
function CheckAll(form)
{
var n = 0;
for (var i=0;i <form.elements.length;i++)
{
var e = form.elements[i];
if (e.type == "checkbox " && e.checked)
n++;
if(n> 2)
break;
}
if(n != 2)
{
alert( "请重新选择! ");
return false;
}
return true;
}
//-->
</SCRIPT>
</HEAD>

<BODY>
<FORM METHOD=POST onsubmit= "CheckAll(this); " ACTION= " ">
<INPUT TYPE= "checkbox " NAME= "dd "> dsfdddd <INPUT TYPE= "checkbox " NAME= "dd "> dsf <INPUT TYPE= "checkbox " NAME= "dd "> adasf <INPUT TYPE= "checkbox " NAME= "dd "> dffff
<br>
<INPUT TYPE= "submit " value= " 提交 ">
</FORM>
</BODY>
</HTML>