-1

这是一个简单的检查和ajax发送功能

fcell是单元格编号,v_cell是前 3 位数字,应该在 091-3 范围内。

所以我得到了他们两个,当我提醒他们一切都很好(虽然我得到了 3 个警报)但是当它发送 ajax 请求时我得到了这个错误

TypeError: fcell is undefined
[Break On This Error]   
var v_cell = fcell.slice(0,3);

这是代码

var finprog = false;    
    $('.send_to_friend').click(function(){

    var tr     = $(this).parent().parent();
    var p      = $(this).parent();
    var fcell  = tr.find('.fcell').val();
    var fname  = tr.find('.fname').val();
    var funame = tr.find('.funame').val();
    var v_cell = fcell.slice(0,3);
    alert(fcell);
    alert(v_cell);


    if(isNaN(fcell))
    { 
        alert('error');
        return false;
    }

    if(fcell.length != 11 )
    { 
        alert('error');
        return false;
    }

    if(v_cell != 091 && v_cell != 092 && v_cell != 093 )
    { 
        alert('error');
        return false;
    }


    if(fname.length == 0 )
    {
        alert('error');
        return false;
    }


    if(funame.length == 0 )
    {
        alert('error');
        return false;
    }

    if(finprog) return false;
    finprog = true ;

    var id  = tr.attr('class');
    p.html('<img src="images/load_square.gif" width="27" height="27" />');

    $.post('aj.php' , { name:fname , uname:funame , cell:fcell , sms_id:id , doo : 'sent_to_friend' }
     , function(data) { 
     finprog = false;

        if($.trim(data) == 'ok')
        {
            p.html('ok');
        }
        else
        {
            p.html('error');
        }
    })


})

这没有任何意义

这是我的 ajax 参数。它在这里定义!cell 09163105802

Parametersapplication/x-www-form-urlencoded
cell    09125105802
doo sent_to_friend
name    x
sms_id  9
uname   x
4

1 回答 1

1

您很可能收到此错误,因为您的 tr 对象为空。因此,当您尝试查找具有 fcell 类的元素时,它也会返回 null。

var tr = $(this).parent().parent();
// tr is most likely null here
var fcell  = tr.find('.fcell').val();
// therefore fcell cannot be found and is undefined

如果是这种情况,我建议您使用以下方法来查找您的 tr.

var tr = $(this).closest('tr');
于 2012-09-05T20:12:33.737 回答