-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 オブジェクトが null であるため、このエラーが発生する可能性が高くなります。したがって、クラス 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 に答える