3 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊
事件的名稱不包含前綴on——該前綴僅在相應(yīng)的屬性名稱中使用。
另外,如果使用類方法作為回調(diào)函數(shù),則需要將其綁定到對(duì)象。否則,this方法中將是全局window對(duì)象,而不是Validationator對(duì)象。
class Validationator
{
constructor()
{
this.initValidation()
}
initValidation()
{
window.addEventListener("load", this.PerformOnLoad.bind(this), false);
}
PerformOnLoad()
{
var form = document.querySelector("#feedbackcontainer");
form.addEventListener("submit", this.SubmitClicked.bind(this));
}
SubmitClicked()
{
alert("asdf");
}
}

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
form.addEventListener("onsubmit", this.SubmitClicked);
onsubmit 是錯(cuò)誤的,正確的是form.addEventListener("submit", this.SubmitClicked);
還有其他代碼嗎?

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊
在PerformOnLoad()函數(shù)中不能有onsubmit事件,它只是submit。
此外,您需要bind在調(diào)用PerformOnLoad()和SubmitClicked()方法時(shí)使用。在這種情況下,最終的代碼將是這樣的,
class Validationator
{
constructor()
{
this.initValidation()
}
initValidation()
{
window.addEventListener("load", this.PerformOnLoad.bind(this), false);
}
PerformOnLoad()
{
var form = document.querySelector("#feedbackcontainer");
form.addEventListener("submit", this.SubmitClicked.bind(this));
}
SubmitClicked()
{
alert("asdf");
}
}
- 3 回答
- 0 關(guān)注
- 148 瀏覽
添加回答
舉報(bào)