繁体   English   中英

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

[英]Why doesn't jQuery code work in my php file?

我在将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。

只需从$(document).ready() ,这是jquery中的一个很好的实践:

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

您的代码:

  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;

现在也有doc,但是在该块内部没有解析。

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

不用回声,只需合上大括号即可。 也$(document).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']);
    }
};?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM