javascript - 尝试使用 jQuery 执行 AJAX 不起作用

标签 javascript jquery ajax

我正在尝试将 AJAX 与 jquery 结合使用……这就是我正在尝试做的事情:

    <div class="form">
            <form name="contact" class="js-form-contact" action="contact.php" method="post">
                <div class="clearfix">
                    <label>Mail</label>
                    <div class="input">
                        <input type="text" size="44" name="mail"/>
                    </div>

                    <div class="clearfix">
                        <label>Message</label>
                        <div class="input">
                            <textarea rows="6" name="message"></textarea>
                        </div>
                    </div>

                    <!-- recaptcha -->

                    <br/>

                    <div class="submit">
                        <input type="submit" class="btn primary" value="Enviar"/>
                    </div>

                    <div id="quote">
                        <p> :D </p>
                    </div>
                </div>  
            </form>
        </div>          
    </div>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $("btn primary").click(function(){
            $.ajax({
                type: "post",
                url: "contact.php",
                data: $('.js-form-contact').serialize(),
                success: function(data) {                                               
                    $('.js-form-contact .btn primary').attr("disabled", true);
                    $('#quote').html("Rock!!");
                    // $('.column:first-child .box').after('<p class="msg">' + data + '</p>');  
                }
            });         
        });
    });
</script>

contact.php 只是在做“echo “Hello”;”目前。当我单击提交按钮时,浏览器转到 contact.php 并回显“Hello”...

这里有什么问题? ,我对 JS 和 jQuery 很陌生,所以请原谅我的笨拙 :)

最佳答案

您的 jQuery 选择器有误。它应该是 $(".btn.primary"). 表示它是您要查找的元素的类。类之间没有空格意味着元素应该匹配所有这些类。

此外,您可能应该使用 event.preventDefault()以防止点击事件冒泡到有机提交处理程序。

把钱放在嘴边...

// Note the parameter in the click-handler declaration
$(".btn.primary").click(function (event) {
    event.preventDefault();

    // Do ajax magic here
});

关于javascript - 尝试使用 jQuery 执行 AJAX 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8630156/

相关文章:

javascript - 试图获得一个按钮来取消隐藏图片

jquery - 将未知高度的 jQuery UI 对话框居中 - 这可能吗?

javascript - AJAX POST 不适用于 javascript 到 nodejs

javascript - Ruby on Rails - AJAX 分页中的 JQuery 未运行

javascript - AJAX 调用未通过发送数据

javascript - Handlebars 和 Javascript

javascript - IPython 3 到 Jupyter 迁移、custom.js 和事件

javascript - html5 : Show an image OVER the canvas

javascript - 如何使 jquery 函数与动态变化的元素一起工作

jquery - jsplumb 动画连接线