当进行另一个ajax调用时,jquery验证脚本不会重置

时间:2011-01-14 11:05:26

标签: jquery

嘿,我正在使用一个jquery插件,当我专注于一个字段并集中注意时它会提醒我一个验证错误。

现在在我的设置中,我有一个菜单,通过ajax从另一个页面加载内容,并且在该内容中我有另一个子菜单,也用另一个ajax请求调用内容。

方案

我点击主菜单中的文件,然后点击从子菜单查看,然后点击从那里创建(使用另一个ajax请求)

在创建内容是我使用验证插件的地方,所以就像我说的那样,当我关注它时,它可以正常工作,但是如果我再次从主菜单中点击文件,则验证错误仍然存​​在于它们弹出的位置。如果我从子菜单中单击“查看”,则验证错误会淡出。

我试图通过子菜单中的ajax调用,但现在使用主菜单来解决错误消失的问题。

主菜单脚本:

//------------------------------------------------------------------
// Pidget menu
//------------------------------------------------------------------
var content = '#main-content',
    wrap = '#wrap';
$("nav a.files-menu-link").live('click', function({
    $.validationEngine.closePrompt('.formError',true);
    $(content).hide(200, function(){
        $(wrap).load('files.php' + content, function(){
            $(this).hide().html(data).slideDown(500);
        });
    })
    return false;
});

子菜单脚本

$('a#prospect-file-link').live('click', function(){
    $.validationEngine.closePrompt('.formError',true);
    $.post('resources/ajax/ajax.php', {
        action : 'prospects',
        uid    : uid
    }, function(data){
        $('#files-right-pane').hide().html(data).slideDown(500);
        $(".alpha").click(function() {
            $(this).find("span").toggleClass("expand-alpha-down");
            $(this).next(".show").slideToggle();
            return false;
        });
    });
    return false;
});

然后创建新脚本

//-- Create new prospect
$('a.new-prospect').live('click', function(){
    $('#files-right-pane').fadeOut(200);
    $.post('resources/ajax/ajax.php', {
        action : 'create_prospect',
        uid    : uid
    }, function(data){
        $('#files-right-pane').hide().html(data).slideDown(500);
        selectBox('prospect-type', 'prospect-type-td');
        selectBox('status', 'status-td');
        selectBox('primary-number', 'primary-td');
        selectBox('secondary-number', 'secondary-td');
        mce('new-prospect-comments');
        $("#new-prospect-form").validationEngine();
        $('.state').autoSuggest('resources/ajax/suggest.php', {minChars: 2, matchCase: false, startText: '', asHtmlID: 'state'});
    });
    return false;
});

html标记

...
<td><input type="text" id="first_name" name="first_name" class="validate[required]" /></td>
<td><input type="text" id="middle_name" name="middle_name" /></td>
<td><input type="text" id="last_name" name="last_name" class="validate[required]" /></td>
...

这就是我的设置,我无法弄清楚.closePromp()在视图中有效但在主菜单链接中无效

1 个答案:

答案 0 :(得分:0)

在我看来,在'function('。

)之后你缺少一个括号

而不是:

$("nav a.files-menu-link").live('click', function({

它应该是:

$("nav a.files-menu-link").live('click', function(){