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

时间:2010-10-06 12:14:56

标签: jquery forms function windows-explorer

对于我的jq驱动表单,我正在寻找一个清除我的表单并将其设置回原始阶段的函数,因为它在页面加载时却没有刷新整个页面。我使用占位符文本,我已经创建了一个标准的重置按钮。在webkit浏览器中,它工作正常。如果单击重置按钮,表单将返回到原始状态,显示IE中的占位符文本BUT(当前使用8)表单已清除,但占位符文本未返回。知道如何清除表单但是取回我的占位符文本(我正在使用placeholder.js插件)?我尝试了以下但不起作用:

$("#refresh").click(function() {
    $('#name, #email, #betreff, #nachricht').val('');
});

有任何帮助吗?

编辑
链接到占位符插件:http://github.com/mathiasbynens/Placeholder-jQuery-Plugin

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

3 个答案:

答案 0 :(得分:1)

将id =“refresh”设为标准按钮,以便不清除整个表单。您必须通过以下函数手动“重置”使用占位符的表单元素:

$("#refresh").click(function() {
    $('#name, #email, #betreff, #nachricht').val('').placeholder();
});

您必须使用val('');

清除非占位符元素

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

$("#refresh").click(function() {
    $("input[placeholder],textarea[placeholder]").val('').placeholder();
});

这应该替换所有输入/ textarea元素,以便您必须添加到选择器的任何其他元素。

答案 1 :(得分:0)

$("#refresh").click(function() {
    $('#name').val($('#name').attr('placeholder'));
    $('#email').val($('#email').attr('placeholder'));
    $('#betreff').val($('#betreff').attr('placeholder'));
    $('#nachricht').val($('#nachricht').attr('placeholder'));
});

这有用吗? (我不能从这里测试) 如果可行,您可能希望使用input和一些选择器的快捷方式。

答案 2 :(得分:0)

今天正在处理类似的问题。我希望这有帮助。 归功于Paolo Bergantino。

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