没明白楼主的意思也?是否需要实现点击input[type=text]控件中为空值时,才自动增加一行,还是每次点击当前最后一个输入框,才会自动增加一行呢?然后你输入数据需要回写到数据库或者用其他方式保存数据??
如果是纯粹的前端实现这个功能不难,代码也很好写。利用jQuery给个DEMO,自己将代码粘贴后跑一下看看是否满足你的要求,纯粹在前端实现你的要求。
HTML PUBLIC "-//W3C//DTD HTML 4.01 TRansitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dTD">
demo.clickBorder {
border:1px solid #818;
}
.blurBorder {
border:1px solid #7F9DB9;
}
DEMO
名 称
单 价
数 量
$(document).ready(function() {
var className = "even",
html,
obj;
$("#QueryDataTable tbody tr:last td:last input").live("click", function() {
this.className = "clickBorder";
className = ($(this).closest("tr").get(0).className == "odd") ? "even" : "odd";
html = [];
html.push("
html.push(className)
html.push("'>");
html.push("
");html.push("
");html.push("
");html.push("
");if ( /^\d+$/.test(this.value) ) {
$(this).closest("tr").after(html.join(''));
} else {
window.alert("请您在输入框中填写相应的数量后,再点击该输入框!");
}
$(this).blur( function() {
this.className = "blurBorder";
});
});
});
其中用到 jQuery 1.3中新增的方法。给所有当前以及将来会匹配的元素绑定一个事件处理函数(比如click事件)。也能绑定自定义事件。这种委派的能力非常强大,使得jQuery提供强悍的生产能力,呵呵。所以楼主在拷贝我的DEMO的时候,务必下载1.3.X版本的jQuery,同时友善提醒注意我的JS引用的路径,是与HTML在同一层的javascript目录中。