我想清除表单中的所有输入和文本区域字段。当使用reset类的输入按钮时,它的工作原理如下:

$(".reset").bind("click", function() {
  $("input[type=text], textarea").val("");
});

这将清除页面上的所有字段,而不仅仅是表单中的字段。我的选择器看起来像什么形式的实际重置按钮生活?


当前回答

我在这里看到的代码和相关的SO问题似乎不完整。

重置表单意味着从HTML中设置原始值,所以我根据上面的代码将其放在一个小项目中:

            $(':input', this)
                .not(':button, :submit, :reset, :hidden')
                .each(function(i,e) {
                    $(e).val($(e).attr('value') || '')
                        .prop('checked',  false)
                        .prop('selected', false)
                })

            $('option[selected]', this).prop('selected', true)
            $('input[checked]',   this).prop('checked',  true)
            $('textarea',         this).each(function(i,e) { $(e).val($(e).html()) })

如果我遗漏了什么或者有什么需要改进的地方,请告诉我。

其他回答

你们中的一些人抱怨无线电和诸如此类的默认“已检查”状态被清除…你所要做的就是将:radio,:复选框选择器添加到.not中,问题就解决了。

如果你不能让所有其他重置函数工作,这个可以。

改编自ngen的回答 函数form_reset (formID) { $(':输入',' # ' + formID) 另(‘:按钮’,‘:提交’,”:重置”,“:隐藏”,“:广播”,“:复选框”) .val ("); }

如果我想清除除accountType以外的所有字段,请使用以下方法

$q(':input','#myform').not('#accountType').val('').removeAttr('checked').removeAttr('selected');

简单却很有魅力。

$("#form").trigger('reset'); //jquery
document.getElementById("myform").reset(); //native JS

最简单和最好的解决方案是- $(" #形式”)[0].reset ();

不要在这里用- $ () [0] .reset ();

$(document).ready(function() {
    $('#reset').click(function() {
    $('#compose_form').find("input[type=text] , textarea ").each(function() {
    $(this).val('');
   });
  });
});