2014-11-05 57 views
0

我在將jquery插件放入我的php文件時遇到困難。我希望能夠防止在文本字段爲空時發送表單,但它不起作用。爲什麼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。

+1

你確定「的jquery.js」是在同一文件夾和文件中包含要在 – baao 2014-11-05 23:28:51

+1

運行jQuery函數是不是因爲你有來包裝你的代碼與jQuerys'.''處理程序? – Mic1780 2014-11-05 23:38:22

+0

不幫助,即使我已經.ready處理程序 – user3786923 2014-11-08 22:09:53

回答

0

只需使用$(document).ready() jQuery的開始,很不錯的做法:

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

仍然不阻止表單提交,內部腳本和jquery文件是正確的,但不提交。 – user3786923 2014-11-06 16:07:58

+0

你想要什麼? **'event.preventDefault();'**只是防止默認的HTML事件執行,而不是執行jQuery中的內容。這並不意味着它完全阻止了一個表格提交朋友。所以你想要什麼? – 2014-11-06 21:06:33

+0

我想要提醒消息,當文本字段爲空,所以當我點擊提交它沒有提交和ot顯示我的警告消息 – user3786923 2014-11-08 20:56:56

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; 
+0

這是prolly一個正確的事情要做,但即時新的編程,我想確保起初有些更基本的工作,但是謝謝 – user3786923 2014-11-06 16:06:13

0

而不是迴應它,只需關閉大括號。另外的$(document)。就緒

<?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']); 
    } 
};?> 
+0

儘管這樣做會起作用,但編碼相當醜陋,調試時可能會引起混淆。 – 2014-11-06 00:05:34

+0

嗯,我認爲這個網站更專注於製作工作代碼,而不是防止醜陋的代碼......大聲笑只要看看wordpress。如果醜陋的代碼是一種罪過,wordpress將是satan – KyleK 2014-11-06 00:09:28

+0

是啊......這就是爲什麼你沒有得到任何反對票。 Wordpress是一個非程序員的模具切割模板...你期望什麼? – 2014-11-06 00:19:05