2011-02-07 100 views
13

我有一個validation.js文件jquery的: - [對象的對象]錯誤

var name = $("#name"); 

    $.ajax({ 
     type:  "get", 
     url:  "test.jsp", 
     data:   "name="+name, 
     success: function(msg) { 

      $('#result').hide(); 

      $("#result").html(msg) 
      .fadeIn("slow"); 
     } 
    }); 

test.jsp的

</head> 
    <body> 
     <h1><% 
     String user=request.getParameter("name"); 
     out.print(user); 
     %></h1> 
    </body> 

登錄user.jsp文件

<form method="post" id="customForm" action="welcome.html"> 
     <div> 
      <label for="name">Name</label> 
      <input id="name" name="name" type="text" /> 
          <span id="nameimage"></span> 

      <span id="nameInfo"></span> 
          <p id="result"></p> 
     </div> 

我必須在我的表單中顯示用戶名,只要用戶g oes到我的form.but 它是顯示[對象對象]錯誤的地方,其中p標籤開始

+0

發生了什麼`console.log(msg)`?這個對象是什麼樣的? – treeface 2011-02-07 17:30:27

+7

[object Object]不是一個錯誤,它是基本JavaScript對象的字符串表示形式。這意味着您的服務器可能正在打印JSON或某種對象。 – 2011-02-07 17:35:55

回答

12

看起來像msg是不是你所期望的。我想你想msg.responseText

你看到的翻譯:原因是因爲msg是對象類型,你將它傳遞到.html將其轉換爲字符串。因此,html填充了對象的字符串表示形式,在本例中爲「[object Object]」

5

您將需要傳遞#name對象的值或文本。就像這樣:

var name = $("#name").val(); 
var name = $("#name").text(); 
0

msg似乎是一個文檔對象,而不是包含相應名稱的字符串。在我看來,你想$('#response').text($(msg).find('h1').text());

0

當你使用一個錨標記時,舊的IE期望在某處重定向。如果您有類似以下內容:

<a href="javascript: submit()">Submit</a> 

IE使用JSON的時候會告訴你空白頁[Object object],即使submit()使用AJAX。

可以使用的onClick代替或javascript:void sumbit()這樣的:

<a id="btn-submit">Submit</a> 
<script> 
    $(document).on('click', '#btn-submit', function(event){ 
     event.preventDefault(); 
     submit(); 
    }); 
</script> 

我沒有測試的空白解決方案,但我的同事說,這是他使用的一個。