开发者

loading for ajax call and my problem with it

why after empty value $(idinput).val() == '' not hide loading ajax call #loadingDiv:

    $('#loadingDiv')
        .hide()  // hide it initially
        .ajaxStart(function() {
            $(this).fadeIn('slow');
        })
        .ajaxStop(function() {
            $(this).fadeOut('slow');
        });
    $('.auto_complete').keyup(function () {
            var specific = '.' + $(this).closest('div.auto_box').find('b').attr('class');
            //var cl_list = '.' + $(this).closest('div.auto_box').find('ul').attr('class');        
            var id = '#' + this.id;
            var url = $(id).attr('class');
            var idinput = '#'+$(specific + ' input').attr('id');
            var dataObj = $(this).closest('form').serialize();
            $.ajax({
                type: "POST",
                dataType: 'json',
                url: url,
                data: dataObj,
                cache: false,            
                success: function (data) {
                    //alert(url)
                    var cl_list = '.' + $('.auto_box '+ specific +' ul').attr('class');
                    var id_name = $(cl_list).attr('id');
                    $(cl_list).show().html('');
                    if (data == 0) {
                        $(cl_list).show().html('<p><b>وجود ندارد</b></p>');
                    }
                    else {
                        $.each(data, function (a, b) {
                            //alert(b.name)
                            $('<p id="' + b.name + '">' + b.name + '</p>').appendTo(cl_list);
                        });

                        $(cl_list + ' p').click(function (e) {
                            e.preventDefault();
                            var ac = $(this).attr('id');
                            $('<b>' + ac + '، <input type="text" name="'+id_name+'[]" value="' + ac + '" style="border: none; display: none;" /></b>').appendTo($('.auto_box ' + specific + ' span'));
                            $(this).remove();
                            return false;
                        });
                        $('.auto_box span b').live('click', function (e) {
                            e.preventDefault();
                            $(this).remove();
                            return false;
                        });
                    }

   ///////////////////////////////////here/////////////////////////////////////////////
                        if ($(idinput).val() == '') {
                            alert('cl_list')
                            $(cl_list开发者_StackOverflow中文版).hide()
                            $(cl_list + " p").hide().remove();
                            $('.auto_complete').val('');
                            $(".list_name").show().html('');
                        };
   ///////////////////////////////////end//////////////////////////////////////////////

                    $('body').click(function () {
                        $(cl_list + " p").hide().remove();
                        $('.auto_complete').val('');
                        $(cl_list).show().html('');
                        $(cl_list).css('display','none')
                    });
                },
                "error": function (x, y, z) {
                    // callback to run if an error occurs
                    alert("An error has occured:\n" + x + "\n" + y + "\n" + z);
                }
            });
        });


It looks like you're missing a handful of semi-colons at the ends of your statements. Try this:

$('#loadingDiv')
    .hide()  // hide it initially
    .ajaxStart(function() {
        $(this).fadeIn('slow');
    })
    .ajaxStop(function() {
        $(this).fadeOut('slow');
    });
$('.auto_complete').keyup(function () {
        var specific = '.' + $(this).closest('div.auto_box').find('b').attr('class');
        //var cl_list = '.' + $(this).closest('div.auto_box').find('ul').attr('class');        
        var id = '#' + this.id;
        var url = $(id).attr('class');
        var idinput = '#'+$(specific + ' input').attr('id');
        var dataObj = $(this).closest('form').serialize();
        $.ajax({
            type: "POST",
            dataType: 'json',
            url: url,
            data: dataObj,
            cache: false,            
            success: function (data) {
                //alert(url);
                var cl_list = '.' + $('.auto_box '+ specific +' ul').attr('class');
                var id_name = $(cl_list).attr('id');
                $(cl_list).show().html('');
                if (data == 0) {
                    $(cl_list).show().html('<p><b>وجود ندارد</b></p>');
                }
                else {
                    $.each(data, function (a, b) {
                        //alert(b.name);
                        $('<p id="' + b.name + '">' + b.name + '</p>').appendTo(cl_list);
                    });

                    $(cl_list + ' p').click(function (e) {
                        e.preventDefault();
                        var ac = $(this).attr('id');
                        $('<b>' + ac + '، <input type="text" name="'+id_name+'[]" value="' + ac + '" style="border: none; display: none;" /></b>').appendTo($('.auto_box ' + specific + ' span'));
                        $(this).remove();
                        return false;
                    });
                    $('.auto_box span b').live('click', function (e) {
                        e.preventDefault();
                        $(this).remove();
                        return false;
                    });
                }

                if ($(idinput).val() == '') {
                    alert('cl_list');
                    $(cl_list).hide();
                    $(cl_list + " p").hide().remove();
                    $('.auto_complete').val('');
                    $(".list_name").show().html('');
                };

                $('body').click(function () {
                    $(cl_list + " p").hide().remove();
                    $('.auto_complete').val('');
                    $(cl_list).show().html('');
                    $(cl_list).css('display','none');
                });
            },
            "error": function (x, y, z) {
                // callback to run if an error occurs
                alert("An error has occured:\n" + x + "\n" + y + "\n" + z);
            }
        });
    });


Try:

if(!$(idinput).val())

I swear I had this same error a while back, but cant find the project.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜