1

我一直在尝试学习如何将 jQuery AJAX 与 PHP 一起使用。

我的问题是,每当我选择除 之外document的任何其他元素时,似乎都没有任何效果。我想要的是在按下提交按钮无济于事后简单地阻止页面加载。

我尝试过使用 jQuery 而不是 $,但仍然没有运气。

老实说,我不确定我在做什么,我已经尝试了几个小时来寻找这个解决方案。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
    $("p").click(function() { 
         alert('test');
    });
    $("form").submit(function() { 
         alert('test');
         return false;
    });
</script>
<title>Insert title here</title>
</head>
<body>
    <form action="process.php" method="post">
        Inputs:<br />
        <textarea rows="15" cols="60" id="input" name="input">Some text...
        </textarea><br /><br />
        Start:
        <input type="text" id="start" name="start" />
        End:
        <input type="text" id="end" name="end" /><br />
        <input type="submit" id="submit" name="submit" value="Submit">
    </form>
    <p id="output">Output: Some Random Text</p>
</body>
</html>
4

2 回答 2

5

在页面的其余部分加载之前,您的 JavaScript 正在运行。要修复它,请将您的脚本移动到页面底部(在结束标记之前),或使用 jQuery方法</body>将事件处理程序绑定到 DOM 就绪事件:.ready()

$(document).ready(function () {
    // Your code in here
});

//or, use the shorthand form:

$(function () {
    // Your code here
});

边注

我尝试过使用 jQuery 而不是 $,但仍然没有运气。

jQuery和之间没有区别$。两者都只是持有对同一对象的引用的标识符。它通常更容易使用$(只是因为它更短),除非您使用除 jQuery 之外的另一个库也需要该标识符(例如 PrototypeJS),在这种情况下,您可以告诉 jQuery 放弃使用该方法对$标识符的控制。.noConflict()

于 2012-10-07T08:25:48.433 回答
2

您正在尝试在元素加载之前选择它们。加载文档后,使用文档就绪事件运行您的代码。

<script>
    $(function()
    {
        $("p").click(function() { 
             alert('test');
        });
        $("form").submit(function() { 
             alert('test');
             return false;
        });
    });
</script>
于 2012-10-07T08:25:57.677 回答