这是我的jquery与ajax调用
$(".zipfield").on("keyup", function(){
var city = $(this).closest(".addressBlock").find(".cityfield");
var state = $(this).closest(".addressBlock").find(".statefield");
if ($(this).val() !== "" && (city.val() === "" || city.val() == null) && (state.val() === "" || state.val() == null) ) {
$.ajax({
method: "POST",
url: "<?= $this->baseUrl();?>/search/zip",
data: {zip: $(this).val()},
complete: function (r, e) {
var data = JSON.parse(r.responseText);
if (data.status === "OK") {
city.val(data.city);
state.val(data.state);
}
}
});
}
});
关于如何在每次为zipfield输入新值时更新它的任何建议
似乎在
var city = $(this).closest(".addressBlock").find(".cityfield");
var state = $(this).closest(".addressBlock").find(".statefield");
使用$(this).closest(".className")
实际上并没有获得元素,因此,在ajax调用之后没有设置它们。
我不相信你可以在jquery的closest
中使用类名。你应该找到最接近的tr
或者form
。从那里,您可以使用find
与类名cityfield
和statefield
。