2017-10-04 88 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不是你意向。