[英]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.