所以我一直在阅读以下教程:http://jqueryfordesigners.com/play-school-easy-ajax-load/ (顺便说一句,网站目前似乎有点慢)
我尝试过使用:
if(this.value.length > 0) {
但是好像不行。 当我在输入论坛中输入内容时,即使我只是按shift键,它每次都会加载test1.php。 (这不是我想要的,我希望它仅在我输入实际字母或数字时刷新)
我正在使用的主要 JavaScript:
$(document).ready(function () {
$('#name').keyup(function () {
// if(this.value.length > 0) {
$('#results ul').load(
'test1.php #results li'
, { name : this.value }
);
// }
});
});
有什么指点吗?
最佳答案
$(document).ready(function () {
$('#name').keyup(function () {
// console.log(this.value);
if(this.value.length > 0) {
$('#results ul').load('test1.php #results li', { name : this.value });
}
});
});
应该可以。尝试在各处添加一些 alert("test");
并查看它们何时弹出。或者使用 firebug 单步执行代码。
编辑
您似乎希望它仅在按下实际字符键时加载页面。有多种方法可以做到这一点,但最简单的方法可能是将框的值与前一个值(即按下按键之前的值)进行比较:
$(document).ready(function () {
$('#name').keyup(function () {
if(this.value != $(this).attr("data-old-value") && this.value.length > 0) {
$(this).attr("data-old-value", this.value);
$('#results ul').load('test1.php #results li', { name : this.value });
}
});
});
这仅在您使用 keyup 时才有效(在 Firefox 中测试)。
关于javascript - 如果输入大于0并且是字母键,如何仅执行jquery代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1963321/