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

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

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


当前回答

$('form[name="myform"]')[0].reset();

其他回答

$(".reset").click(function() {
    $(this).closest('form').find("input[type=text], textarea").val("");
});

经过测试和验证的代码:

  $( document ).ready(function() {
    $('#messageForm').submit(function(e){
       e.preventDefault();
    });
    $('#send').click(function(e){
      $("#messageForm")[0].reset();
    });
  });

Javascript必须包含在$(document)中。准备好了,而且必须符合你的逻辑。

我在这里看到的代码和相关的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()) })

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

这不会处理表单输入字段默认值为非空的情况。

应该可以工作

$('yourdiv').find('form')[0].reset();

通过使用JQuery的.trigger()和原生javascript的.reset()的组合,可以将所有表单元素重置为空白状态。

$(".reset").click(function(){
    $("#<form_id>").trigger("reset");
});

将<form_id>替换为form的id来重置。