Javascript 刷新jquery选项卡中的表单字段
如何重置jQuery选项卡中动态生成的表单字段? 当用户从一个选项卡移动到另一个选项卡时,应重置带有表单文本字段的第一个选项卡,并在重新访问该选项卡时重置字段 已使用该功能:Javascript 刷新jquery选项卡中的表单字段,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,如何重置jQuery选项卡中动态生成的表单字段? 当用户从一个选项卡移动到另一个选项卡时,应重置带有表单文本字段的第一个选项卡,并在重新访问该选项卡时重置字段 已使用该功能: resetForm(formId){ $(’#’+formId)[0].reset(); } 问题是该选项卡包含在添加更多时动态创建的表单字段 在这种情况下,如何删除清除表单字段。这将清除所有表单值: $('input:text, input:password, input:file, select, teaxa
resetForm(formId){
$(’#’+formId)[0].reset();
}
问题是该选项卡包含在添加更多时动态创建的表单字段
在这种情况下,如何删除清除表单字段。这将清除所有表单值:
$('input:text, input:password, input:file, select, teaxarea').val('');
您可以为所有输入定义一个公共类,并基于onfocus或blur等事件重置它们的值。 比如说
document.getElementsByClassName("myclass").onfocus = function() {
}
想象一下你有:
<div id="container>
<form ...>
... dynamically generated forms etc
<form ...>
</div>
这将为选中的所有表单启动给定函数,其中$This是当前表单。如果我理解正确,是否要清除表单中动态创建的字段 那这就是你需要的吗
resetForm(formId) {
$("input, textarea, select", $("#" + formId)).val(''); // Or .text('');
}
我会向动态添加到表单中的字段添加一些类。例如:动态添加。因此,当您转到另一个选项卡时,我会执行以下操作:
var form_values;
$( ".selector" ).tabs({
select: function(event, ui) {
if (ui.index != 0) { //if I didn't clicked on the first tab
save_form_fields();
$( ".dynamically_added" ).remove();
$("#" + formId).reset();
}
else {
add_dynamic_fields();
restore_form_values();
}
}
});
我没有测试代码,但我希望它有帮助。如果没有,请告诉我,我会考虑其他问题。是否清除表单字段?清除它们的值或从HTML中删除它们?确保动态添加的表单元素必须位于表单标记内。否则,重置将不适用于它们。您必须手动清除文本框。如果表单加载到DOM中,它应该按照您的编码方式工作。也许标记上的代码示例会更有用。那么,@Starx我已经编辑了答案,但我不知道您是否可以并且应该重设按钮?您的语句也将计算为$+formId.val。表单没有值字段。@Starx实际上,formId是jQuery函数中的第二个参数。它为第一个参数设置上下文:输入、文本区域、选择。请参阅参考资料:我的错,我对引号感到困惑。这可能有效,但这是从DOM中删除元素的最佳方法吗?只是明确元素的值不是更好吗?问题是你所说的最佳方式-性能是什么意思?跨浏览器?。我想如果你不需要支持IE6,那么这几乎是最好的方式。对不起,我是说更好的方式=我想你需要更多的代码来重新创建你删除的元素。所以你可以从某种程度上说性能。对不起,刚才错过了问题的恢复部分。我猜创建元素的代码是存在的。因此,如果在离开表单之前保存现有字段的值,则可以在返回到第一个选项卡并向我的代码中添加else后返回这些值。
var form_values;
$( ".selector" ).tabs({
select: function(event, ui) {
if (ui.index != 0) { //if I didn't clicked on the first tab
save_form_fields();
$( ".dynamically_added" ).remove();
$("#" + formId).reset();
}
else {
add_dynamic_fields();
restore_form_values();
}
}
});