2010-12-20 3 views
3

私はJQueryを使用していますが、JQueryコードのサンプルが下にあります。jqueryで.Val()を使用しているときにエラーが発生しました

のjQueryコード:上記のコードサンプルで

$.ajax({ 
     type: "POST", 
     url: "Login.aspx", // Send the login info to this page 
     data: str, 
     success: function(result) 
     { 
      // Show 'Submit' Button 
      $('#loginButton').show(); 

      // Hide Gif Spinning Rotator 
      $('#ajaxloading').hide(); 

      var resLength = (result).val().trim().length; 
      alert(resLength); 
      if(resLength!=0) 
      { 

       var arr = result.split(","); 
       var fname = arr[0]; 
       var lname = arr[1]; 
       var activeCardNo = arr[2]; 
       var multipleTier = arr[3]; 
       var activeStatus = arr[4]; 
       var access = arr[5]; 
      } 
     } 
    }); 

私は(.valを使用しようとしています)下の行で

var resLength = (result).val().trim().length; 

それはエラーに「の結果を与えています。 valは関数ではありません "、もし私がちょうどのresult.trim()を使用していれば、長さ、それはfirefoxでうまく動作しますが、giv IEでエラーが発生しました。

お勧めします!

+0

の単なるテキスト値だ - あなたの代わりにカンマで区切られた文字列のJSONを使用した場合、あなたのコードは非常にきれいにすることができます。 – Kobi

+0

JSONPのアイデアはありません.thanks –

答えて

6

はこれを試してみてください。 trimはブラウザ間ではサポートされていないため、代わりにjQuery.trimを使用してください。

値を直接チェックすることもできます。

result = $.trim(result); 
if(result) 
{ 
    // split, ... 
} 

resultが要素であることを意図している場合、あなたはjQueryオブジェクトでラップする必要があります:空の文字列は、あなたがチェックできるように、JavaScriptで偽の値を持つ

var resLength = $.trim($(result).val()).length; 
+0

ありがとう@コビー...良い答え! –

+0

答えの非常に素晴らしい詳細。 –

0

正しい構文はresult.trim().lengthで、IEはtrim().trim() in JavaScript not working in IEを参照)をサポートしていないため、文句を言います。

リンクされた質問から受け入れられた回答コードをコードに追加して、コードが修正されているかどうかを確認してください。

0

コードは次のようになります -

var resLength = result.val().trim().length; 
alert(resLength); 

書く代わりに "result" の "(result)" エラーが発生します。これは、ここの変数が "result"であるためです。

希望します。 resultが文字列であれば、それはval機能を持っていない

var resLength = $.trim(result).length; 

+0

これを再現することはできませんし、変数の周りの '()'がその違いを生み出すという単純なシナリオは考えられません。 – Kobi

0

(result).val();これは

間違っ上記のいずれかが結果がHTMLの場合は

0を使用してください

入力タイプのhtml値に使用されます

.text(); or .html() 
0

それはjQueryオブジェクトではありません、それはところで返さAJAX

関連する問題