ajax发布数据错误[object HTMLCollection]

时间:2012-03-22 13:57:50

标签: javascript jquery ajax

我在我的网站上写了一个联系表格的脚本,然而一切正常而不是将数据存储在我的数据库中所有都是得到的 [object HTMLCollection] c 有谁告诉我这是什么? 或者出了什么问题?我看过谷歌,但我找不到相关信息。

<script type="text/javascript">

    //when the button is clicked



    $(document).ready(function() {

    $("#button").click(function() {



        $('.small').hide();



              var name = $("input#name").val();

            if (name == "") {

          $("span#name").show();

          return false;

        }



              var name = $("input#email").val();

            if (name == "") {

          $("span#email").show();

          return false;

        }



              var name = $("input#subject").val();

            if (name == "") {

          $("span#subject").show();

          return false;

        }



             var name = $("textarea#message").val();

            if (name == "") {

          $("span#message").show();

          return false;

        }







        var dataString = 'name='+ name + '&email=' + email + '&subject=' + subject + '&message=' + message;



            $.ajax({

          type: "POST",

          url: "/scripts/send_message.php",

          data: dataString,



          });

    $("#messagearea").load("console/new_message_profile.php?sent=1");

    });

    });

    </script>

2 个答案:

答案 0 :(得分:2)

正如@Namit所提到的,你在任何地方使用name作为变量。构建字符串emailsubjectmessage是未初始化的。

他们应该给你一个undefined - 但是,由于奇怪的Internet Explorer行为(参见Is there a spec that the id of elements should be made global variable?),这些变量包含DOM元素。由于您似乎有多个具有相同ID的元素(从不这样做),这里的变量<span><input>,变量甚至似乎都包含HTMLCollection个对象。当你用其他字符串连接时,哪些字符串被转换为字符串[object HTMLCollection]

答案 1 :(得分:0)

您正在为所有其他字段重复使用变量name。您需要将字段名称更改为相应的输入ID。

var name = $("input#email").val();    // needs to be email 
var name = $("input#subject").val();  // needs to be subject