我在将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。
答案 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']);
}
};?>