表单重置函数返回未定义

问题描述 投票:0回答:4

我正在尝试通过以下方式重置表单输入:

$("#form_employee_job")[0].reset();

输入仍已填充且控制台返回

undefined

我缺少什么?

javascript jquery html forms input
4个回答
1
投票

看看这个小提琴https://jsfiddle.net/yn2xeq6z/1/

如果您的表单 ID 是

form_employee_job
,那么一切都应该按预期工作。表单的所有输入字段都将被清除。


1
投票

也许除了您在此处发布的代码之外,您还缺少其他内容?

这里有一个可用的 jsfiddle 可能会帮助你。当您按下按钮时,此示例将重置表单。

HTML

<form id='form_employee_job'>
  <input type='text'/>
</form>
<button id="btn">reset</button>

JS

$(document).ready(function() {
  $("#btn").on("click", function() {
    $("#form_employee_job")[0].reset();
  });
});

1
投票

我相信您的表单在 POST/GET 请求的字段中可能包含 POST 数据。在这种情况下,表单重置将不起作用。

我不能 100% 确定这是否是错误或其工作方式。

如果您以编程方式为输入分配了一些值,则可能无法重置。

为了实现重置,您可以清空表单输入。

$(':input','#myform')
    .not(':button, :submit, :reset, :hidden')
    .val('')
    .removeAttr('checked')
    .removeAttr('selected');

请参阅这篇文章使用 jQuery 重置多阶段表单


0
投票

.reset() 函数清除所有用户输入的数据,而不是页面加载时存在的数据。我的意思是,reset() 函数将在加载时带来表单元素的 html value 属性中的所有数据(默认值)。

所以如果你想清除“默认”值,你需要别的东西。可能所有元素值都一一为空?

并且reset()函数应该返回undefined,这里没有问题。

© www.soinside.com 2019 - 2024. All rights reserved.