哦,为什么,$ .post功能

时间:2012-08-21 09:24:16

标签: jquery ajax

现在有一段时间我正在努力解决这个问题。这是一个例子:

HTML示例代码:

    <form method="POST">            
        <label>Input 1:</label><br/>
        <input type="text" name="Input1" id="Input1"/><br/>
        <input type="submit" name="Login" value="Login" id="Login"/>
    </form>

PHP示例代码(script.php):

    if(isset($_POST['Input1Php']))
    {   
        $Input1 = $_POST['Input1Php'];

        if($Input1 == "Random Condition")
        {
            echo "All good";
        }else
        {
            echo "Hell no!";
        }
    }

jQuery示例代码(我也尝试过.submit(),不会改变任何东西):

$('#Login').click(function()
{
    var Input1JS = $('#Input1 ').val();

    if("Something"=="Random Condition")
    {   
        $.post('script.php',{Input1Php:Input1JS},function(data)
        {
            if(data=="All good")
            {
                   Show me that
            }else
            {
                   Show me this
            }
        });
    }else
    {
        Just don't do anything
    }
}); 

此脚本可以使用.keyup等查找,但是当我将其更改为单击或提交时,它就不会执行任何操作。我不明白为什么。我错过了什么吗? $ .post是否只适用于那些事件?

PS:请不要将$ .post更改为其他内容。我的观点是要了解这个功能如何以及是否适用于这些事件。

2 个答案:

答案 0 :(得分:1)

如果您的问题缺少某些信息,则您的网页可能会回发,因此不会等待$.post返回。尝试更改

<input type="submit" name="Login" value="Login" id="Login"/>

<input type="button" name="Login" value="Login" id="Login"/>

看看会发生什么。

答案 1 :(得分:0)

浏览器通常对按钮有一些默认操作。在这种情况下,后期数据将通过传统方式提交。如果您想阻止此行为,只需在return false;回调结束时添加click即可。