2011-02-07 34 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> 

我没有测试的空白解决方案,但我的同事说,这是他使用的一个。

相关问题