jQuery: - [object Object]错误。

12

我有一个 validation.js 文件

var name = $("#name");

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

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

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

测试.jsp

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

登录用户的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>
我必须在用户到达表单中的下一个字段时显示用户名。但是,在 p 标签开始的地方显示 [object Object] 错误。

当您执行console.log(msg)时会发生什么?那个对象看起来像什么样子? - treeface
8
"[object Object]" 不是错误,它是一个基本 JavaScript 对象的字符串表示。这意味着你的服务器可能正在打印 JSON 或某种类型的对象。 - Amjad Masad
4个回答

12

看起来msg不是你想要的。我认为你想要的是msg.responseText

你看到 [object Object] 的原因是因为 msg 是一个对象类型,而你传递给.html方法会将它转换为字符串。这样,html就填充了这个对象的字符串表示形式,而在本例中为 "[object Object]"。


5
您需要传递 #name 对象的值或文本。像这样:
var name = $("#name").val();
var name = $("#name").text(); 

谢谢...错误已经被解决,但输出出现在文本框下一行,我希望它出现在与名称文本框相同的行。 - Prerna
我还想将函数(msg)中的msg值与字符串进行比较。 - Prerna

0

老古董IE期望在使用锚点标签时重定向到某个地方。如果你有类似下面的内容:

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

当使用JSON时,即使submit()使用ajax,IE也会显示带有[Object object]的空白页面。

您可以使用onClick代替或像这样使用javascript:void sumbit()

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

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


0

msg 似乎是一个文档对象,而不是包含适当名称的字符串。 在我看来,你想要 $('#response').text($(msg).find('h1').text());


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接