我有一个输入框。提交后,我有一个PHP脚本,它检查输入框是否为空。如果是,则显示错误消息并运行Javascript函数。
我的问题是出现了错误消息,但Javascript函数没有执行。
这是我的剧本:
<?php
if(isset($_POST['submit'])) {
$username = $_POST['username'];
if(empty($username)) {
echo 'Please enter a username';
echo"
<script>
window.onload = function () {
function validate(e) {
var username = document.getElementById('username');
if (username.value.trim() == '') {
username.classList.add('error');
setTimeout(function() {
username.classList.remove('error');
}, 300);
e.preventDefault();
}
}
}
</script>
";
}else{
// something here
}
}
?>
<form method="post" id="login">
<input type="text" id="username" name="username">
<input type="submit" name="submit">
</form>
答案 0 :(得分:1)
您的JavaScript函数实际上在哪里执行?删除逻辑,你拥有的结构:
window.onload = function () {
function validate(e) {
//...
}
}
因此,当窗口加载时,您执行一个函数。该函数只是定义另一个函数。什么都没有执行其他功能。
如果要在窗口加载时执行该代码,请不要将其包装在函数中。只需执行它:
window.onload = function () {
// validation logic here
}