您的位置:首页 > 其它

超链接提交表单时,进行表单验证-checkbox框是否选中?

2014-06-22 14:37 387 查看

当点击删除的时候,验证如下表单的checkbox框是否有选中,如果有选中就提交此表单到Del的servlet,没有选中就给出用户提示(请选择车次!)

<form action="Del" method="get" id="myform" >

<table>

<tr>

<th><a href="javascript:$('#myform').submit()" >删除</a></th>

<th>车次</th>

<th>发车-到达</th>

<th>发时-到时</th>

<th>车型</th>

<th>运行时间(小时)</th>

</tr>

<c:forEach items="${list}" var="t" varStatus="i">

<tr class="${i.count%2==0?'even':'odd'}">

<td><input type="checkbox" name="train_no" id="train_no" value="${t.train_no }"/></td>

<td><a href="Info?train_no=${t.train_no}">${t.train_no}</a></td>

<td>${t.start_station}-${t.arrival_station}</td>

<td>${t.start_time}-${t.arrival_time}</td>

<td>${t.type}</td>

<td>${t.runtime}</td>

</tr>

</c:forEach>

</table>

</form>

这是表单验证的jquery代码:

$(function(){

$("#myform").submit(function(){

var flag = false;

$("#myform input[name = train_no]").each(function(){

if($(this).attr('checked')=='checked'){

flag = true;

return false;

});

if (flag){

return true;

}else{

alert('请选择车次!');

return false;

}

});

});

checkbox没有选中时,表单验证没有生效,表单还是提交了,提交给了一个空页面,后来改成点击超链接的时候表单提交:

<a href="javascript:void(0)" onclick="$('#myform').submit()" >删除</a>,表单验证生效了。

想想这样也有点麻烦,each循环看checkbox选中没有

$("#myform input[name = train_no]").each(function(){

if($(this).attr('checked')=='checked'){

flag = true;

return false;

});

flag==true的时候,checkbox至少有一个选中,表单提交,否则不提交表单。

想想checkbox就是一个数组,计算选中的个数,如果大于0,就说明至少有一个选中了

就把代码换了一种写法 ,更好理解,更简洁

jquery 表单验证代码:

$(function(){

$("#del").click(function(){

var cks=$("input[name='train_no']:checkbox:checked");

if (cks.length>0){

$("#myform").submit();

return true;

}else{

alert("请选择车次!");

return false;

}

});

});

超链接给了一个id=del

<a href="javascript:void(0)" id="del">删除</a>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: