2013-06-19 260 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/

相關問題