<html>
<head>
</head>
<body>
<script type="text/javascript" src="http://www.w3school.com.cn/jquery/jquery.js"></script>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input name="id" type="text" /></td>
<td><input name="other1" type="text" /></td>
<td><input name="user" type="text" /></td>
<td><input name="other2" type="text" /></td>
<td><input name="name" type="text" /></td>
</tr>
<tr>
<td><input name="id" type="text" /></td>
<td><input name="other1" type="text" /></td>
<td><input name="user" type="text" /></td>
<td><input name="other2" type="text" /></td>
<td><input name="name" type="text" /></td>
</tr>
<tr>
<td><input name="id" type="text" /></td>
<td><input name="other1" type="text" /></td>
<td><input name="user" type="text" /></td>
<td><input name="other2" type="text" /></td>
<td><input name="name" type="text" /></td>
</tr>
</table>
<script>
$('input[type=text]').focus(function(){
var t=$(this).parents('tr').prev();
if(!t.length)return;
var a=t.find('input[name=id]');
if(!a.val()){alert('error');a.focus();return false;}
//---------
})
</script>
</body>
</html>
<head>
</head>
<body>
<script type="text/javascript" src="http://www.w3school.com.cn/jquery/jquery.js"></script>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input name="id" type="text" /></td>
<td><input name="other1" type="text" /></td>
<td><input name="user" type="text" /></td>
<td><input name="other2" type="text" /></td>
<td><input name="name" type="text" /></td>
</tr>
<tr>
<td><input name="id" type="text" /></td>
<td><input name="other1" type="text" /></td>
<td><input name="user" type="text" /></td>
<td><input name="other2" type="text" /></td>
<td><input name="name" type="text" /></td>
</tr>
<tr>
<td><input name="id" type="text" /></td>
<td><input name="other1" type="text" /></td>
<td><input name="user" type="text" /></td>
<td><input name="other2" type="text" /></td>
<td><input name="name" type="text" /></td>
</tr>
</table>
<script>
$('input[type=text]').focus(function(){
var t=$(this).parents('tr').prev();
if(!t.length)return;
var a=t.find('input[name=id]');
if(!a.val()){alert('error');a.focus();return false;}
//---------
})
</script>
</body>
</html>
$('input[type=text]').focus(function(){
var t=$(this).parents('tr').prev();
if(!t.length)return;
var a=t.find('input[name=id]');
if(!a.val()){alert('error');a.focus();return false;}
var b=t.find('input[name=user]');
if(!b.val()){alert('error');b.focus();return false;}
var c=t.find('input[name=name]');
if(!c.val()){alert('error');c.focus();return false;}
//---------
})
</script>
slwsss,这段又测了一下,有一个问题,如果有10行表格,点了一下第9行,那么会把1,2,3,4,5,6,7,8行的错报完,请帮忙修改成,如果是10行表单,第1行有正常值,在第9行输入,只报一个错,反回到第2行,谢谢。
var t=$(this);
var a=t.find('input[name=id]');
if(!a.val()){alert('error');a.focus();return false;} //---------
});
})
这个进入了死循环模式,"error" 轰炸
<head>
</head>
<body>
<script type="text/javascript" src="http://www.w3school.com.cn/jquery/jquery.js"></script>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input name="id" type="text" /></td>
<td><input name="other1" type="text" /></td>
<td><input name="user" type="text" /></td>
<td><input name="other2" type="text" /></td>
<td><input name="name" type="text" /></td>
</tr>
<tr>
<td><input name="id" type="text" /></td>
<td><input name="other1" type="text" /></td>
<td><input name="user" type="text" /></td>
<td><input name="other2" type="text" /></td>
<td><input name="name" type="text" /></td>
</tr>
<tr>
<td><input name="id" type="text" /></td>
<td><input name="other1" type="text" /></td>
<td><input name="user" type="text" /></td>
<td><input name="other2" type="text" /></td>
<td><input name="name" type="text" /></td>
</tr>
</table>
<script>
$('input[type=text]').focus(function(){
var th=$(this).parents('tr')[0];
$(this).parents('table').find('tr').each(function(){
if(th==this)return false;
var t=$(this);
var a=t.find('input[name=id]');
if(!a.val()){alert('error');a.focus();return false;} //---------
});
})
</script>
</body>
</html>
最后一个小问题,如果表格加一个表头,等于是顶部多了一个tr,这段代码应该怎么修改,我把var th=$(this).parents('tr')[0];改成var th=$(this).parents('tr')[1];不起作用。 点第一行的时候就开始报错。
$('input[type=text]').focus(function(){
var th=$(this).parents('tr')[0];
$(this).parents('table').find('tr:not(:first)').each(function(){
if(th==this)return false;
var t=$(this);
var a=t.find('input[name=id]');
if(!a.val()){alert('error');a.focus();return false;}
//---------
});
})
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<th>id</th>
<th>other1</th>
<th>user</th>
<th>other2</th>
<th>name</th>
</tr>
<tr>
<td><input name="id" type="text" /></td>
<td><input name="other1" type="text" /></td>
<td><input name="user" type="text" /></td>
<td><input name="other2" type="text" /></td>
<td><input name="name" type="text" /></td>
</tr>
<tr>
<td><input name="id" type="text" /></td>
<td><input name="other1" type="text" /></td>
<td><input name="user" type="text" /></td>
<td><input name="other2" type="text" /></td>
<td><input name="name" type="text" /></td>
</tr>
<tr>
<td><input name="id" type="text" /></td>
<td><input name="other1" type="text" /></td>
<td><input name="user" type="text" /></td>
<td><input name="other2" type="text" /></td>
<td><input name="name" type="text" /></td>
</tr>
<tr>
<td><input name="id" type="text" /></td>
<td><input name="other1" type="text" /></td>
<td><input name="user" type="text" /></td>
<td><input name="other2" type="text" /></td>
<td><input name="name" type="text" /></td>
</tr>
</table>
<script>
$(function() {
$(':text').click(function(){
if($(this).val()) return false;
$(this).parents('table').find(':text').each(function() {
if(! $(this).val()) {
alert($(this).attr('name') + ':error');
$(this).focus();
return false;
}
})
})
});
</script>