这是我的JS函数:
function checkError() {
var field = 'error';
var url = window.location.href;
document.write('test');
window.alert('please work');
if(url.indexOf('?' + field + '=') != -1)
document.write('The username and password do not match. Do not use your full email.');
return true;
}
然后在我的正文段落中,我有:
<?php echo '<script> checkError();</script>' ?>
调用它没有任何错误。但是该功能在我的页面上没有任何作用。有什么想法吗?我尝试将JS脚本放在页面和JS文件中,并正确调用其包含。
完整脚本:
<html>
<head>
<meta charset="UTF-8">
<title>Secure Login</title>
<script type="text/JavaScript" src="js/functions.js"></script>
<link href="stylesheets/mainStyle.css" rel="stylesheet" type="text/css">
<link href="stylesheets/formStyle.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php include('header.php'); ?>
<div id="mainContent">
<h1>Member Login</h1>
<div id="mainParaText">
<?php echo '<script> checkError();</script>' ?>
</div>
</body>
</html>
原来JS函数是未定义的。呃,不知道为什么(以为我不久前解决了这个问题,哈哈)
尝试如下:
<html>
<head>
<meta charset="UTF-8">
<title>Secure Login</title>
<script type="text/JavaScript" src="js/functions.js"></script>
<link href="stylesheets/mainStyle.css" rel="stylesheet" type="text/css">
<link href="stylesheets/formStyle.css" rel="stylesheet" type="text/css">
<script type="text/javascript">
function checkError(){
var field = 'error';
var url = window.location.href;
document.write('test');
window.alert('please work');
if(url.indexOf('?' + field + '=') != -1)
document.write('The username and password do not match. Do not use your full email.');
return true;
}
<?php
echo "checkError();";
?>
</script>
</head>
<body>
<?php include('header.php'); ?>
<div id="mainContent">
<h1>Member Login</h1>
<div id="mainParaText">
<?php echo '<script> checkError();</script>' ?>
</div>
</body>
</html>
JS是客户端,PHP是服务器端。
这意味着PHP代码中的所有内容都将在服务器上处理,然后"回显"到您的浏览器,在那里您会收到未定义的错误。
调试时,您应该始终首先在浏览器中检查源代码,以便准确查看服务器回显的内容。
我有点猜测,但尝试使用双引号而不是单引号。
并且与问题无关...您正在使用JS检查用户名和密码?你到底要怎么做?用 ajax 回调到服务器?如果您使用 JS 检查,这意味着密码应该在源代码中的某个地方并且不安全。用户名/通过验证应始终在服务器端进行(使用 ajax 请求或通常的提交表单)。