2011-02-07 41 views
13

tôi có một tập tin validation.jsjquery: - [đối tượng Object] lỗi

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> 

đăng nhập tập tin 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> 

tôi phải hiển thị tên người dùng trong biểu mẫu của tôi ngay khi người dùng g oes để feild tiếp theo trong form.but của tôi nó đang hiển thị [object Object] lỗi tại nơi thẻ p bắt đầu

+0

Điều gì xảy ra với những gì bạn làm 'console.log (msg)'? Đối tượng đó trông như thế nào? – treeface

+7

[đối tượng đối tượng] không phải là lỗi, biểu diễn chuỗi của đối tượng javascript cơ bản. Điều đó có nghĩa là máy chủ của bạn có thể đang in một JSON hoặc một đối tượng thuộc loại nào đó. –

Trả lời

12

trông giống như msg không phải là những gì bạn mong đợi. Tôi nghĩ bạn muốn msg.responseText

Lý do bạn thấy [đối tượng đối tượng] là vì đối tượng loại và bạn chuyển nó vào .html sẽ chuyển đổi thành chuỗi. Và do đó html được lấp đầy với chuỗi đại diện của đối tượng trong trường hợp này là "[object Object]"

5

Bạn sẽ cần phải chuyển giá trị hoặc văn bản của đối tượng #name. Như thế này:

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

thks ... lỗi bị xóa nhưng đầu ra là dòng tiếp theo bên dưới hộp văn bản, tôi muốn nó xuất hiện trong cùng dòng bên cạnh hộp văn bản tên – Prerna

+0

Tôi cũng muốn so sánh giá trị msg trong hàm (msg) giá trị với một chuỗi – Prerna

0

msg dường như là đối tượng tài liệu, chứ không phải là một chuỗi chứa tên thích hợp. Dường như với tôi rằng bạn muốn $('#response').text($(msg).find('h1').text());

0

IE cũ tốt sẽ chuyển hướng đến nơi nào đó khi bạn sử dụng thẻ neo. Nếu bạn có một cái gì đó như sau:

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

IE sẽ cho bạn thấy trang trống với [Object object] khi sử dụng JSON, ngay cả khi submit() sử dụng ajax.

Bạn có thể sử dụng onClick thay hoặc javascript:void sumbit() như thế này:

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

tôi đã không kiểm tra các giải pháp khoảng trống nhưng một đồng nghiệp của tôi nói đó là một ông sử dụng.

Các vấn đề liên quan