对于我的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浏览器与标准重置按钮一起工作正常,再次显示占位符文本。现在我正在寻找一种在所有浏览器中都采用相同方式的解决方案。
答案 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