当点击删除的时候,验证如下表单的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)" οnclick="$('#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>