2017-02-20 56 views
0

我有對信息的消息一個div和形式兩個按鈕(其實是兩個輸入類型提交和重置)的innerHTML不是從事件處理

在div#信息是動態填充一個非常簡單的HTML應用(AJAX) 。 在JavaScritpt,我等待窗口加載和我註冊了onreset事件復位輸入:

window.addEventListener("load", onloadWindow); 
 

 
function onloadWindow() { 
 
    // Document loaded, register onreset event for my form 
 
    document.getElementById("formId").addEventListener("onreset", onresetForm); 
 
} 
 

 
// Reset al the infos 
 
function onresetForm(event) { 
 
    document.getElementById("formId").reset(); 
 
    document.getElementById("info").innerHTML = ''; 
 
}
<body> 
 
    <div id="info"></div> 
 
    <form id='formId' action='#' method='post'> 
 
    <label for='cod'>Code:</label> 
 
    <input id='cod' type='text' name='cod'><br> 
 
    <label for='desc'>Description:</label> 
 
    <input id='desc' type='text' name='desc'><br> 
 
    <label for='type'>Type:</label> 
 
    <input id='type' type='text' name='type'><br> 
 
    <input id='upd' type='submit' name='upd' value='Update'> 
 
    <input id='res' type='reset' name='res' value='Reset'> 
 
    </form> 
 
</body>

在表單中的所有文本字段被清除,但innerHTML = ''爲div#info不起作用,ajax生成的前一個消息不會被刪除。我在這裏錯過了什麼嗎?

順便說一句,我使用的形式Smarty的模板,但我不認爲這是有關我的問題

+2

事件名稱應該是 「重置」,而不是 「onreset」。 – Pointy

+0

是的,並刪除這行'document.getElementById(「formId」)。reset();'因爲它會導致無限循環。 –

+0

初學者愚蠢的錯誤。謝謝 – rodrunner

回答

1

事件類型/名稱就是reset,不onreset。然後在您的重置回調中,您不需要重新設置表單。

window.addEventListener("load", onloadWindow); 
 

 
function onloadWindow() { 
 
    // Document loaded, register onreset event for my form 
 
    document.getElementById("formId").addEventListener("reset", onresetForm); 
 
} 
 

 
// Reset al the infos 
 
function onresetForm(event) { 
 
    document.getElementById("info").innerHTML = 'form has been reset'; 
 
}
<body> 
 
    <div id="info">Info before reset</div> 
 
    <form id='formId' action='#' method='post'> 
 
    <label for='cod'>Code:</label> 
 
    <input id='cod' type='text' name='cod'><br> 
 
    <label for='desc'>Description:</label> 
 
    <input id='desc' type='text' name='desc'><br> 
 
    <label for='type'>Type:</label> 
 
    <input id='type' type='text' name='type'><br> 
 
    <input id='upd' type='submit' name='upd' value='Update'> 
 
    <input id='res' type='reset' name='res' value='Reset'> 
 
    </form> 
 
</body>