为什么jQuery代码在我的php文件中不起作用?

时间:2014-11-05 23:22:29

标签: php jquery forms

我在将jquery插件放入我的php文件时遇到了困难。我希望能够在文本字段为空时阻止发送表单,但它不起作用。

PHP:

    <html>
    <head>    
        <script src="jquery.js"></script>
    </head>

<?php


    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        if(empty($_POST["login"])) {
        echo '<script type="text/javascript">
            $("form").submit(function(event){ 
            event.preventDefault();
            alert("submit prevented");
            });                 
            </script>';
        }else {
        $login = test_input($_POST['login']);
        }

    }
?>

HTML:

<form action="form.php" method="post"> 
    Login: <input type="text" name="login"><br>
    <input type="submit">
</form>

我的脚本文件中的相同脚本

$("form").submit(function(event){ 
    event.preventDefault();
    alert("submit prevented");
});

工作正常,问题是我无法将其放入我的php中,我认为它是因为缺少jQuery。

3 个答案:

答案 0 :(得分:0)

简单地从$(document).ready()开始,在jquery中非常好的做法:

$(document).ready(function() {
  $("form").submit(function(event) {
    event.preventDefault();
    alert("submit prevented");
  });
});

答案 1 :(得分:0)

您的代码:

  echo '<script type="text/javascript">
        $("form").submit(function(event){ 
        event.preventDefault();
        alert("submit prevented");
        });                 
        </script>';

这不是你在PHP中正确回显多行的方式。 看看heredoc。例如:

echo <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;

echo <<<"FOOBAR"
Hello World!
FOOBAR;

还有nowdoc但是在块内部没有进行解析。

echo <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;

答案 2 :(得分:0)

不要回应它,只需关闭大括号即可。还有$(文件).ready

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if(empty($_POST["login"])) {;?>

        <script type="text/javascript">
          $(document).ready(function(){
            $("form").submit(function(event){ 
              event.preventDefault();
              alert("submit prevented");
            });             
          });    
         </script>

    <?php }else {
    $login = test_input($_POST['login']);
    }
};?>