Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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 尝试重置html表单时出错_Javascript_Jquery_Jquery Forms Plugin - Fatal编程技术网

Javascript 尝试重置html表单时出错

Javascript 尝试重置html表单时出错,javascript,jquery,jquery-forms-plugin,Javascript,Jquery,Jquery Forms Plugin,在我当前的spring项目中,在我提交表单之后,我需要重置它。我使用以下javascript/jquery代码执行此操作: $('form.form').ajaxForm(function(data) { $('form.form').each(function(){ this.reset(); }); }); 这段代码的问题是,有些表单有内部表单,在弹出窗口中打开,源代码放在同一个jsp页面中。在这种情况下,上面的代码将重置这两个表单 我尝试了其他代码: $(

在我当前的spring项目中,在我提交表单之后,我需要重置它。我使用以下javascript/jquery代码执行此操作:

$('form.form').ajaxForm(function(data) {
    $('form.form').each(function(){
        this.reset();
    });
});
这段代码的问题是,有些表单有内部表单,在弹出窗口中打开,源代码放在同一个jsp页面中。在这种情况下,上面的代码将重置这两个表单

我尝试了其他代码:

$('form.form').ajaxForm(function(data) {
    $(this).each(function(){
        this.reset();
    });
});
但是有了这个,我得到了这个错误:

Uncaught TypeError: Object #<Object> has no method 'reset'
但情况还是一样

更新2

最后,我尝试以下代码:

$('form.form').ajaxForm(function(data) {
    var nome = $('form.form').attr('id');

    if(data == '')
        $('#yes').css('display', 'block');
    else
        $('#not').css('display', 'block');

    $('#'+nome).each(function(){
        this.reset();
    });
});
$('form.form').each(function () {
    var form = this;
    $(form).ajaxForm(function (data) {
        if (data == '') {
            $(form).find('#yes').css('display', 'block');
        } else {
            $(form).find('#not').css('display', 'block');
        }
        form.reset();
    });
});

只重置主窗体,即第一个要打开的窗体。我想知道是否有一种方法可以引用上次打开的表单,即在jquery ui对话框中打开的表单。

我已经对该问题进行了一些代码模拟,但是,我仍然不确定我是否正确理解了这里的问题,您的问题是如何仅重置1个表单?在任何地方,我都会解释错误并重置特定的表单

Uncaught TypeError: Object #<Object> has no method 'reset'

我终于找到了这个问题的解决方案,代码如下:

$('form.form').ajaxForm(function(data) {
    var nome = $('form.form').attr('id');

    if(data == '')
        $('#yes').css('display', 'block');
    else
        $('#not').css('display', 'block');

    $('#'+nome).each(function(){
        this.reset();
    });
});
$('form.form').each(function () {
    var form = this;
    $(form).ajaxForm(function (data) {
        if (data == '') {
            $(form).find('#yes').css('display', 'block');
        } else {
            $(form).find('#not').css('display', 'block');
        }
        form.reset();
    });
});

按照此答案中的说明进行操作:

检查@Se0ng11我已经看到了这个问题,到目前为止我已经尝试了第一种方法,但由于内部表单的问题,我无法使用它。通过ajaxForm传递的数据是什么样子的?@Se0ng11这是我现在所期望的,只是一个空字符串。螺母我没有在函数中使用它。@Se0ng11抱歉再次打扰您。我尝试了在您指示我的链接中描述的另一件事,看到了更新,但仍然发生了相同的错误。看到这个JSFIDLE::当我提交内部表单时,所有表单都被重置。好的,我刚刚看到了您实际在做什么,您的内部表单肯定会被重置,因为它在父表单中,但在实际情况下,内部表单不在父表单中,请参见此处:内部表单位于页面开头的中。