2013-06-19 205 views
0

我有一个JavaScript代码,无论何时复选框被选中,将重新加载我的当前页面,然后应该灰化一些输入字段。页面刷新或重新加载后Javascript代码未运行

但是,它只是在页面重新加载时进行重新加载,输入字段永远不会变灰。

$(document).ready(function(){ 
    $("#storePickUp").on("click", function() { 
if ($(this).is(":checked")) { 
document.getElementById("shippingForm").submit(); 
document.getElementById("shippingAdress").disabled = true; 
document.getElementById("shippingState").disabled = true; 
document.getElementById("shippingCity").disabled = true; 
document.getElementById("shippingZip").disabled = true; 
document.getElementById("shippingZipCode").disabled = true; 
document.getElementById("shippingButton").disabled = true; 
} 
}); 
    }); 

回答

1

所以,你在哪里调用.submit(4号线的代码)...除非你页面上一些额外的魔法你没有显示,这一行将继续发布/获取你的表单到你在那个表单中配置的任何url。

这意味着下面的行根本不重要,因为它们不会在表单目标页面上执行。

为了解决这个问题,如果你真的需要中间的表单发布,你需要发布到一个特定的网址,并使用该网址作为页面加载的触发器来禁用这些元素。不是直接在点击之后,而是在新加载的页面上,这是形式的目标...有道理?

0

我认为这是因为当你点击#storePickUp唯一禁用它们,但如果你的页面重新加载它会重置。

0

方法submit执行,页面重新加载,代码在submit永远不会执行。即使该代码将被执行,页面刷新也会使所有更改无效。

您或许应该使用ajax进行提交,而不是使用submit方法进行提交。如果您在使用jQuery,它会很容易让你:

http://api.jquery.com/category/ajax/

相关问题