在我网站的一个部分,我向客户询问他们的邮政编码和国家/地区。输入这些信息后,将从其他页面加载运费,然后单击计算链接。现在,我想删除点击按钮,输入这些信息后,我希望用户看到加载图像并立即加载数据。我想知道这是否可能,是否有任何例子。
$(document).ready(function() {
$("#link").click(function() {
$.ajax({
type: "GET",
data: { PROCESS: "UPS", WEIGHT: "<%=Session("TotalWeight")%>", POSTALCODE: $(document.getElementsByName("ShippingPostalCode")).val(), COUNTRY: $(document.getElementsByName("ShippingCountry")).val() },
url: "content/checkout/step1/index.cs.asp",
success: function(output) {
$("#sonuc").html(output);
$("#sonuc").css("display", "block");
}
});
});
});
快速更新!我允许我的客户存储地址以备将来使用。如果他们存储了地址,他们只需点击一下即可复制并粘贴地址。这是代码:
function StoredData(){
$.get("includes/ajaxfunctions.asp?Process=checkout1", { QUERY: $(document.getElementsByName("CUSTOMERDETAILNAME")).val() }, function(data){
$("div.StoredData").html(data);
});
}
$(document).ready(function() {
$("input[name=ShippingPostalCode]").livequery("change", function() {
$.ajax({
type: "GET",
data: { PROCESS: "UPS", WEIGHT: "<%=Session("TotalWeight")%>", POSTALCODE: $(document.getElementsByName("ShippingPostalCode")).val(), COUNTRY: $(document.getElementsByName("ShippingCountry")).val() },
url: "content/checkout/step1/index.cs.asp",
success: function(output) {
$("#sonuc").html(output);
}
});
});
});
答案 0 :(得分:1)
我假设您的StoredData
div包含这些输入。
通过编写$("div.StoredData").html(data)
,您将使用新的输入元素替换已在其上注册的事件处理程序的输入。每次执行此操作时都需要重新注册事件处理程序。
最简单的方法是使用jQuery的LiveQuery插件,如下所示:
$("input[name=ShippingPostalCode]").livequery("change", /*your function*/);
在加载时运行一次,一切都应该正常。
或者,您可以在运行$("div.StoredData").html(data)
之后在AJAX回调之后重新注册处理程序。
最后,您还可以更改AJAX请求(ajaxfunctions.asp?Process=checkout1
)以将数据作为JSON而不是包含数据的HTML返回,并自行更新现有元素的值。这是最快的解决方案。
答案 1 :(得分:0)
$(document.getElementsByName("ShippingPostalCode")).change(/*your function*/);