Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 刷新jquery选项卡中的表单字段_Javascript_Jquery_Html_Forms - Fatal编程技术网

Javascript 刷新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

如何重置jQuery选项卡中动态生成的表单字段? 当用户从一个选项卡移动到另一个选项卡时,应重置带有表单文本字段的第一个选项卡,并在重新访问该选项卡时重置字段

已使用该功能:

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();
            }
        }
    });