原来的JS代码:
<script>
$(function () {
var pop = $('#pop'), trs = pop.find('tr'), v, input, find = false;
pop.find('tr').click(function (e) {
var inputs = $(input).closest('tr').find('input');
inputs.eq(0).val(this.cells[0].innerHTML);
inputs.eq(1).val(this.cells[1].innerHTML);
inputs.eq(2).val(this.cells[2].innerHTML);
inputs.eq(3).val(this.getAttribute('d_time'));
pop.hide();
});
$('#table1 td:nth-child(1) input').attr('autocomplete', 'off').click(function (e) {
input = this;
var p = $(this).offset();
pop.css({ left: p.left, top: p.top + this.offsetHeight });
}).keyup(function (e) {
if (e.keyCode == 13) return;
if (e.keyCode == 38 || e.keyCode == 40) {//上下键
e.preventDefault();
var tr = trs.filter('.focus'), up = e.keyCode == 38;
if (tr.size() == 0) trs.filter(up ? ':last' : ':first').addClass('focus');
else {
tr.removeClass('focus');
tr = tr[up ? 'prev' : 'next']();
if (tr.size() == 0) tr = trs.filter(up ? ':last' : ':first');
tr.addClass('focus');
}
return;
}
v = this.value;
find = false;
if (v != '') {
trs.removeClass('focus').each(function () {
if (this.cells[0].innerHTML.indexOf(v) == 0) {
this.style.display = ''; find = true;
if (this.cells[0].innerHTML == v) { this.className = 'focus'; return false; }
} else this.style.display = 'none';
});
}
pop[find ? 'show' : 'hide']();
}).keydown(function (e) {
if (e.keyCode == 13) {
e.preventDefault(); //阻止表单提交
var tr = pop.find('tr.focus');
if (tr.size() > 0) tr.eq(0).trigger('click');
}
});
$(document).click(function (e) { pop.hide(); });
});
</script>
<script>
$(function () {
var pop = $('#pop'), trs = pop.find('tr'), v, input, find = false;
pop.find('tr').click(function (e) {
var inputs = $(input).closest('tr').find('input');
inputs.eq(0).val(this.cells[0].innerHTML);
inputs.eq(1).val(this.cells[1].innerHTML);
inputs.eq(2).val(this.cells[2].innerHTML);
inputs.eq(3).val(this.getAttribute('d_time'));
pop.hide();
});
$('#table1 td:nth-child(1) input').attr('autocomplete', 'off').click(function (e) {
input = this;
var p = $(this).offset();
pop.css({ left: p.left, top: p.top + this.offsetHeight });
}).keyup(function (e) {
if (e.keyCode == 13) return;
if (e.keyCode == 38 || e.keyCode == 40) {//上下键
e.preventDefault();
var tr = trs.filter('.focus'), up = e.keyCode == 38;
if (tr.size() == 0) trs.filter(up ? ':last' : ':first').addClass('focus');
else {
tr.removeClass('focus');
tr = tr[up ? 'prev' : 'next']();
if (tr.size() == 0) tr = trs.filter(up ? ':last' : ':first');
tr.addClass('focus');
}
return;
}
v = this.value;
find = false;
if (v != '') {
trs.removeClass('focus').each(function () {
if (this.cells[0].innerHTML.indexOf(v) == 0) {
this.style.display = ''; find = true;
if (this.cells[0].innerHTML == v) { this.className = 'focus'; return false; }
} else this.style.display = 'none';
});
}
pop[find ? 'show' : 'hide']();
}).keydown(function (e) {
if (e.keyCode == 13) {
e.preventDefault(); //阻止表单提交
var tr = pop.find('tr.focus');
if (tr.size() > 0) tr.eq(0).trigger('click');
}
});
$(document).click(function (e) { pop.hide(); });
});
</script>
$(function () {
var pop = $('#pop'), alltrs = pop.find('tr'), trs, v, input, find = false;
pop.find('tr').click(function (e) {
var inputs = $(input).closest('tr').find('input');
inputs.eq(0).val(this.cells[0].innerHTML);
inputs.eq(1).val(this.cells[1].innerHTML);
inputs.eq(2).val(this.cells[2].innerHTML);
inputs.eq(3).val(this.getAttribute('d_time'));
pop.hide();
});
$('#table1 td:nth-child(1) input').attr('autocomplete', 'off').click(function (e) {
input = this;
var p = $(this).offset();
pop.css({ left: p.left, top: p.top + this.offsetHeight });
}).keyup(function (e) {
if (e.keyCode == 13) return;
trs = trs || alltrs;
if (e.keyCode == 38 || e.keyCode == 40) {//上下键
e.preventDefault();
var tr = trs.filter('.focus'), up = e.keyCode == 38;
if (tr.size() == 0) trs.filter(up ? ':last' : ':first').addClass('focus');
else {
tr.removeClass('focus');
////////////////////////////////
for (var i = 0; i < trs.length; i++) {
if (trs[i] == tr[0]) { i += up ? -1 : 1; break; }
}
tr = trs.eq(i);
if (tr.size() == 0) tr = trs.eq(up ? trs.size() - 1 : 0);
////////////////////////////////
tr.addClass('focus');
}
return;
}
v = this.value;
find = false;
if (v != '') {
alltrs.removeClass('focus').each(function () {
if (this.cells[0].innerHTML.indexOf(v) == 0) {
this.style.display = ''; find = true;
if (this.cells[0].innerHTML == v) { this.className = 'focus'; return false; }
} else this.style.display = 'none';
});
}
trs = alltrs.filter(':visible');/////////////
pop[find ? 'show' : 'hide'](); }).keydown(function (e) {
if (e.keyCode == 13) {
e.preventDefault(); //阻止表单提交
var tr = pop.find('tr.focus');
if (tr.size() > 0) tr.eq(0).trigger('click');
}
});
$(document).click(function (e) { pop.hide(); });
});
不想改js的话可以改下读数据库时的排序,将前缀相同的排序下 rs.open "select * from d_info order by d_code",conn,1,1
谢谢版主,是不是从速度上来说,直接 order by会比JS控制要好一些。
谢谢,我也试了,order by 后在显示的改组数据之后还是有空档的问题,用了版主的最新的,一切正常。