我有一个ajax调用脚本来搜索数字。响应是一个具有名称和姓氏(Strings)的json数组。客户机-脚本就是这样的,我想我真的不明白为什么这个脚本要多次循环和发送响应。这是我最后一次尝试。
$(document).ready(function () {
$("#phone").keyup(function () {
var number = $(this).val();
var toogle = 0;
if (number.length == 10 && toogle == 0) {
alert('inside with 10 numbers');
toogle = 1;
$.ajax({
type: "POST",
url: "info-phone.php",
dataType: "jsonp",
data: {
number: number
}
}).done(function (msg) {
toogle = 0;
if (msg.Name != "" && msg.Surname != "") {
$("#phone").add("Are you " + msg.Name + " " + msg.Surname);
};
}); //done-function
}
}); //phone-keyup
}); //document-ready基本上,我有一个输入,当用户达到10个数字时,这个脚本将调用服务器并获取该号码的名称。
有什么想法吗?只是打错了?
发布于 2014-06-19 13:59:27
试试这个:
$(document).ready(function () {
window.toogle = 0;
$("#phone").click(function () {
var number = $(this).val();
if (number.length == 10 && window.toogle == 0) {
alert('inside with 10 numbers');
window.toogle = 1;
$.ajax({
type: "POST",
url: "info-phone.php",
dataType: "jsonp",
data: {
number: number
}
}).done(function (msg) {
window.toogle = 0;
if (msg.Name != "" && msg.Surname != "") {
$("#phone").add("Are you " + msg.Name + " " + msg.Surname);
}
}); //done-function
}
}); //phone-keyup
}); //document-ready发布于 2014-06-19 13:58:36
我认为您的问题是,在返回返回字符串或“数字”的jQuery .val()方法时,您使用的是度量字符串长度的jQuery。由于您的输入是电话号码,我认为.val()方法正在返回一个整数,您需要将它转换为一个字符串,以使.length正确工作。
试一试
number.toString().length;发布于 2014-06-19 13:51:52
首先,您不应该编写带有多个标识的匿名函数。只要说出你的功能,看得更清楚,在混乱中!
您的变量号和toogle是您调用的匿名函数的本地密钥。我想这里可能有问题,不是吗?
如下所示:
$(document).ready(function () {
window.toogle = 0;
$("#phone").click(phoneKeyUp); //phone-keyup -> this one you declare it to make document.ready() clearer
}); //document-ready
var phoneKeyUp = function() {
var number = $(this).val();
if (number.length == 10 && window.toogle == 0) {
alert('inside with 10 numbers');
window.toogle = 1;
$.ajax({
type: "POST",
url: "info-phone.php",
dataType: "jsonp",
data: {
number: number
}
}).done(function (msg) {
window.toogle = 0;
if (msg.Name != "" && msg.Surname != "") {
$("#phone").add("Are you " + msg.Name + " " + msg.Surname);
}
}); //done-function -> this one may stay here
}
};https://stackoverflow.com/questions/24308114
复制相似问题