2017-10-04 79 views
0

我正在寫一個腳本,它應該執行以下操作:按鈕單擊[JS]後爲什麼不更新表單條目?

1)按鈕單擊會觸發表單加載。

2)表單的一個條目填充了一個特定的值。

我的代碼看起來是這樣的:

document.getElementById('formButton').click(); 
window.onload = function(){ 
    document.getElementById('formEntry').value = "foo"; 
}; 

這個腳本加載的形式,但形式項不更新。 我想問題是表單條目尚未加載到DOM中,但onload似乎沒有完成這項工作......任何提示我在這裏做錯了什麼?

+0

'document.getElementById('formButton')'不會被加載。使用[瀏覽器控制檯(開發工具)](https://webmasters.stackexchange.com/q/8525)(點擊'F12')並讀取任何錯誤。 – Xufox

回答

0

做到這一點 -

1)你必須把所有的文檔變量裏面的window.onload

window.onload = function() { 
    var formEntry = document.getElementById('formEntry'); 
    var formButton = document.getElementById('formButton'); 
}; 

2)你必須改變formEntry被點擊的formButton時,這樣就把.value的另一個函數內部改變,像這樣

window.onload = function() { 
    var formEntry = document.getElementById('formEntry'); 
    var formButton = document.getElementById('formButton'); 

    formButton.addEventListener('click', function() { 
    formEntry.value = "foo"; 
    }); 
}; 

或替代地

window.onload = function() { 
    document.getElementById('formButton').addEventListener('click', function() { 
    document.getElementById('formEntry').value = "foo"; 
    }); 
}; 
0

你應該按鈕單擊事件監聽綁定:

window.onload = function(){ 
    document.getElementById('formButton').addEventListener('click',function(){ 
    document.getElementById('formEntry').value = "foo"; 
    }); 
}; 

通過調用.click()功能您只需觸發任何給定的點擊事件監聽器,但是你有沒有申報一個,並且那也propably不是你意向。