1

我正在尝试提交一个小联系表。

这是我要发布的 jquery:

 <script>

    $(document).ready(function(){
    function submit_contact()
        {
            $.post("http://www.domain.com/wp-content/themes/toronto/handlers/contact.php", {
            contact_text: $("[name='contact_text']").val(),
            contact_email: $("[name='contact_email']").val(),
            }, function(data){
            console.log( data );
            });

        }
    }); 

</script>

这是我处理表单的html:

<form method="post" >

                <textarea id="contact_me_text" name="contact_text">Ask me anything!</textarea>

                <div>

                <input type="text" name="contact_email" value="Email"/><br/><br/>



                <a id="contact_submit" href="javascript:submit_contact()">Submit</a>

                </div>
</form>

一切似乎都很好,但表单没有提交。我已经通过常规提交运行了 .php 文件,它工作正常。

有什么想法吗?

4

3 回答 3

2

你需要在外面声明你的函数$(document).ready(),然后使用任何东西调用它。

为什么我不能?

由于不能从外部访问局部变量,同样也不能访问局部函数。

于 2013-02-20T18:15:38.517 回答
0

试试这个:

<script>

$(document).ready(function(){
    function submit_contact()
    {
        $.post("http://www.domain.com/wp-content/themes/toronto/handlers/contact.php", {
        contact_text: $("[name='contact_text']").val(),
        contact_email: $("[name='contact_email']").val(),
        }, function(data){
        console.log( data );
        });

    }

    $('#contact_submit').on('click', function(){
        submit_contact();
        return false;
    });
}); 



</script>

然后删除 HREF 属性中的 JS。

于 2013-02-20T18:19:08.133 回答
0

您需要在 jQuery 的就绪函数之外声明该函数。此外,您可以使用 serializeArray 来确定要发送的数据。通过使用它,您将不需要提及每个控件名称。在服务器端,您可以接收与您在表单中提到的相同名称的输入。

 function submit_contact()
{
    var params = $("#formId").serializeArray();
    $.post("http://www.domain.com/wp-content/themes/toronto/handlers/contact.php", params, function(data){
    console.log( data );
    });
}
于 2013-02-20T18:43:27.360 回答