在javascript中重置表单

时间:2011-10-26 03:50:24

标签: javascript html

我正在尝试使用确认窗口重置表单。我的HTML看起来像:

<input type="reset" value="Reset" onclick="showReset();"/>

然后是我的javascript:

function doReset() {
    var formElements = document1.form1.elements;
    for (var i = 0; i < formElements.length; i++) {
        formElements[i].value = "";
        if (formElements[i].checked) {
            formElements[i].checked = false;
        }
    }
}

function showReset() {
    if (window.confirm("Do you really want to reset the form?")) {
        doReset();
    }
}

当我在确认窗口点击取消时,表单仍然会重置,我不知道为什么。感谢。

3 个答案:

答案 0 :(得分:2)

由于您的输入类型已重置,它仍会重置。制作该按钮或其他东西,只需使用表单的重置方法,如下所示:

document.form1.reset();

MDN Docs

答案 1 :(得分:2)

如果我理解这个问题,重点是绕过默认行为并改用你的函数。您可以通过向showReset()函数添加返回false来阻止默认按钮操作。

function showReset(e) {
    if (window.confirm("Do you really want to reset the form?")) {
        doReset();
    }
    return false;
}

另外,请确保onclick处理程序返回showReset的结果:

<input type="reset" value="Reset" onclick="return showReset();"/>

或者,如果您想要默认的浏览器行为并且只想要一个确认对话框,为什么不仅使用确认?像这样:

<input type="reset" value="Reset" onclick="return window.confirm('Do you really want to reset the form?');"/>

这只是一个“做什么”,但如果你想获得更多信息,这些线程中有一些很好的信息:

答案 2 :(得分:0)

另一种方法:

var r=confirm("Do you really want to reset the form?");  
if(r==true){  
//Reset logic  
}else{  
//Dont reset logic  
}