jQuery函数清除表单并设置回onLoad状态

jQuery函数清除表单并设置回onLoad状态,jquery,forms,function,windows-explorer,Jquery,Forms,Function,Windows Explorer,对于我的jq驱动的表单,我正在寻找一个函数,它可以清除我的表单,并将其设置回页面加载时的原始阶段,但不刷新整个页面。我使用占位符文本,并创建了一个标准重置按钮。在webkit浏览器中,它可以正常工作。如果点击重置按钮,表单将返回原始状态,显示占位符文本,但在IE(当前使用8)中,表单将被清除,但占位符文本不会返回。你知道我怎样才能清除表单,但又能取回我的占位符文本吗(我使用的是placeholder.js插件)?我尝试了以下方法,但无效: $("#refresh").click(function

对于我的jq驱动的表单,我正在寻找一个函数,它可以清除我的表单,并将其设置回页面加载时的原始阶段,但不刷新整个页面。我使用占位符文本,并创建了一个标准重置按钮。在webkit浏览器中,它可以正常工作。如果点击重置按钮,表单将返回原始状态,显示占位符文本,但在IE(当前使用8)中,表单将被清除,但占位符文本不会返回。你知道我怎样才能清除表单,但又能取回我的占位符文本吗(我使用的是placeholder.js插件)?我尝试了以下方法,但无效:

$("#refresh").click(function() {
    $('#name, #email, #betreff, #nachricht').val('');
});
有什么帮助吗?

编辑到占位符插件的链接:

…是的,我现在说的是在jquery的帮助下关闭它,因为它不能用标准的html重置按钮来完成。我的意思是它可以,但不能在IE中。IE清除表单,并且不再显示占位符文本。Webkit浏览器使用标准重置按钮工作正常,再次显示占位符文本。现在,我正在寻找一种解决方案,在所有浏览器中都采用相同的方式

$("#refresh").click(function() {
    $('#name').val($('#name').attr('placeholder'));
    $('#email').val($('#email').attr('placeholder'));
    $('#betreff').val($('#betreff').attr('placeholder'));
    $('#nachricht').val($('#nachricht').attr('placeholder'));
});
这样行吗?(我不能在这里测试) 如果有效,您可能希望使用带有
input
和一些选择器的快捷方式

将id=“refresh”作为标准按钮,以避免清除整个表单。您必须通过以下功能手动“重置”使用占位符的表单元素:

$("#refresh").click(function() {
    $('#name, #email, #betreff, #nachricht').val('').placeholder();
});
必须使用val(“”)清除非占位符元素

您还可以尝试一种更通用的方法,即选择具有placholder属性的所有相关表单元素(假设您在HTML中或在此脚本运行之前这样做):


这将替换所有输入/文本区域元素,因此您必须将任何其他元素添加到选择器。

今天正在处理类似的问题。我希望这有帮助。 保罗·贝甘蒂诺功不可没

function resetForm($form) {
    $form.find('input:text, input:password, input:file, select, textarea').val('');
    $form.find('input:radio, input:checkbox')
         .removeAttr('checked').removeAttr('selected');
}

// to call, use:
resetForm($('#myform')); // by id, recommended
resetForm($('form[name=myName]')); // by name

您已经尝试了
type=“reset”
按钮?我不清楚你是否在谈论一些jQuery代码。你能链接到你正在使用的
placeholder.js
插件吗?@David-请查看我的编辑。Thanks@Nick-请查看我的编辑。标准html重置按钮不符合我的要求。寻找替代品。接近但不完美。它只返回我在单击重置按钮之前键入的字段的占位符文本。我以前没有点击的所有其他字段的占位符文本将消失。我能让自己理解吗?@Methodin-Bingo,这似乎对我很有用。会做更多的测试,但看起来很好。谢谢-让我在工作繁忙的那一天感到非常高兴。我已经更新了它,以防你想重置所有占位符元素而不列出ID。希望能有帮助。@Methodin-我试过了,但实际上根本没有清除任何字段。遗漏了什么…?我意识到我遗漏了.val(“”).placeholder()。给它一个镜头。$(“输入[占位符],文本区域[占位符]”).placeholder().val(“).placeholder();-你的意思是这样的?
function resetForm($form) {
    $form.find('input:text, input:password, input:file, select, textarea').val('');
    $form.find('input:radio, input:checkbox')
         .removeAttr('checked').removeAttr('selected');
}

// to call, use:
resetForm($('#myform')); // by id, recommended
resetForm($('form[name=myName]')); // by name