繁体   English   中英

使用JQuery清除表单的所有内容

[英]Clear all contents of form with JQuery

有没有一种方法可以使用JQuery清除表单的所有表单元素?

说我有一个如下表格:

<form id="myForm">
    Name: <input type="text" name="name"/> <br/>
    Message: <input type="text" name="message"/>
    <input type="submit" value="Submit Form"/>
</form>

我可以做下面的事情:

$(document).ready(function() {
    $('#myForm').submit(function(event) {
        event.preventDefault();
        //ajax call here
    }).done(function() {
        $('input[name="name"]').val("");
        $('input[name="message"]').val("");
    });
});

此方法清除每个表单元素,但是有没有更广泛的方法可以清除整个表单的内容? 一些伪像$('#myForm').clearInputs(); 如果这样,一次清除所有元素比清除元素1,清除元素2容易/短。

我的第一个答案是给所有输入,文本区域,单选框和复选框一个独特的类,如.clear-after ,然后只需要一行JS:

$('.clear-after').val('');

但是在查找之后,有一些普通的JS可以做到这一点:

document.getElementById("myForm").reset(); 

要么

$("#myForm").reset();

这是捕获广播和复选框的另一种方法。

$('#myForm').find(':input').each(function() {
    switch (this.type) {
        case 'password':
        case 'select-multiple':
        case 'select-one':
        case 'text':
        case 'textarea':
            $(this).val('');
            break;
        case 'checkbox':
        case 'radio':
            this.checked = false;
    }
});

这将在表单的所有文本输入字段上运行val("")

$('#myForm input[type="text"]').val("");

您可以使用单个选择器将函数应用于以下形式的所有输入:

$('#myForm input').val("");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM