2011-02-07 59 views
13

Tengo un archivo validation.jsjQuery: - [object Object] Error

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> 

la entrada de archivos 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> 

tengo que mostrar el nombre de usuario en mi formulario tan pronto como el usuario g Oes al siguiente campo en mi formulario. Pero está mostrando el error [object Object] en el lugar donde comienza la etiqueta p

+0

¿Qué sucede lo que haces 'console.log (msg)'? ¿Cómo se ve ese objeto? – treeface

+7

[object Object] no es un error, es la representación de cadena de un objeto javascript básico. Lo que significa que su servidor probablemente está imprimiendo un JSON o un objeto de algún tipo. –

Respuesta

12

parece que msg no es lo que esperaba. Creo que quieres msg.responseText

La razón por la que se ve [object Object] es porque msg es del tipo de objeto y se le pasa en .html que convertirá en una cadena. Y así el html se llena con la representación de la cadena del objeto que en este caso es "[object Object]"

5

Tendrá que pasar el valor o el texto del objeto #name. De esta manera:

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

thks ... el error se eliminó pero la salida viene del siguiente cuadro de texto, quiero que aparezca en la misma línea además del cuadro de texto del nombre – Prerna

+0

También quiero comparar el valor del msg en el valor de la función (msg) con una cuerda – Prerna

0

msg parece ser un objeto de documento, en lugar de una cadena que contiene el nombre apropiado. Me parece que quiere $('#response').text($(msg).find('h1').text());

0

El viejo IE espera redirigir a alguna parte cuando utiliza una etiqueta de anclaje. Si usted tiene algo como lo siguiente:

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

IE le mostrará la página en blanco con [Object object] cuando se utiliza JSON, incluso si submit() utiliza ajax.

Se puede utilizar en lugar onClick o javascript:void sumbit() así:

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

no he probado la solución vacío, sino un compañero de trabajo mío dice que es el que se utiliza.

Cuestiones relacionadas