在这个facebook墙上的jquery代码中找不到错误

时间:2010-10-18 20:44:23

标签: jquery html

这是一个简单的jquery和html脚本来模拟facebook墙,但它不起作用。有人可以帮助我吗?

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $("form#submit_wall").submit(function () {

            var message_box = $('#message_box').attr('value');

            $.ajax({
                type: "POST",

                data: "message_box=" + message_box,
                success: function () {
                    $("ul#wall").prepend("<li style="
                        display: none;
                        ">" + message_box + "</li>");
                    $("ul#wall li:first").fadeIn();
                }
            });
            return false;
        });
    });
</script>
</head>
<body>
    <form id="submit_wall">
        <label for="message_box">Type your experience :</label>
        <input type="text" id="message_box" />
        <button type="submit">Post it!</button>
    </form>
    <ul id="wall"></ul>

3 个答案:

答案 0 :(得分:2)

您的报价已关闭....也不要忘记设置您发送请求的URL!  ($.ajax({ url: ... , type: ...)。


<强>问题:

$("ul#wall").prepend("<li style="display: none;">"+message_box+"</li>");

您需要注意哪些引号将作为字符串的一部分呈现,哪些引号表示字符串边界。


<强>解决方案:

$("ul#wall").prepend('<li style="display: none;">' + message_box + '</li>');

看看这两个代码片段的语法高亮区别。


Try it out with this jsFiddle

答案 1 :(得分:1)

您没有使用正确的变量名称。您已将变量命名为message_wall,但正尝试将其用作message_box。您可能还需要提供AJAX帖子的URL。如果没有指定,它将使用页面的url,但通常你会从表单的操作中提取它,因为它可能不同。我还会使用val()从输入中获取值。

 $('form#submit_wall').submit( function() {
     var url = $(this).attr('action');
     var message_box = $('#message_box').val();
     $.ajax({
         url: url,
         type: 'POST',
         data: 'message_box=' + message_box,
         success: function() { ... }
     });
     return false;
 });

答案 2 :(得分:0)

message_box未定义,您初始化message_wall ...