Javascript 为什么我的函数checkUser()未定义?
我在注册页面中创建了一个简短的脚本,它在第6行定义了函数checkUser(user) 现在,在包含注册表单HTML的代码的底部,我在名为Javascript 为什么我的函数checkUser()未定义?,javascript,php,html,forms,Javascript,Php,Html,Forms,我在注册页面中创建了一个简短的脚本,它在第6行定义了函数checkUser(user) 现在,在包含注册表单HTML的代码的底部,我在名为'user'的中添加了一个内联脚本onBlur='checkUser(this) 但是,当这个对象失去焦点并且应该触发onBlur函数时,javascript控制台会声明没有定义函数checkUser。为什么会这样 我唯一的猜测是脚本和html在不同的字符串中,但我不知道 我已经为这个例子附上了signup.PHP的完整PHP代码 <?php //sig
'user'
的
中添加了一个内联脚本onBlur='checkUser(this)
但是,当这个对象失去焦点并且应该触发onBlur函数时,javascript控制台会声明没有定义函数checkUser。为什么会这样
我唯一的猜测是脚本和html在不同的字符串中,但我不知道
我已经为这个例子附上了signup.PHP的完整PHP代码
<?php //signup.php
include_once 'header.php';
echo <<<END_
<script type='text/css'>
function checkUser(user) {
"use strict";
if (user.value == '') {
O('info').innerHTML = '';
return;
}
params = "user=" + user.value;
request = new ajaxRequest();
request.open("POST", "checkuser.php", true)
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.setRequestHeader("Content-length", params.length);
request.setRequestHeader("Connection", "close");
request.onreadystatechance = function() {
"use strict";
if (this.readyState == 4)
if (this.status == 200)
if (this.responseText != null)
O('info').innerHTML = this.responseText;
}
request.send(params);
}
</script>$n
<div class='main'><h3>Please enter your details to sign up</h3>
END_;
$salt = "user";
$error = $user = $pass = "";
if (isset($_SESSION['user'])) destroySession();
if (isset($_POST['user']) &&
isset($_POST['pass'])) {
$user = sanitizeString($_POST['user']);
$pass = sanitizeString($_POST['pass']);
$token = md5($salt, $pass);
if ($user == "" || $pass == "") {
$error = "Not all fields were entered.</br></br>";
} else {
if (mysql_num_rows(queryMysql("SELECT * FROM members WHERE user='$user'"))) {
$error = "That username already exists.</br></br>";
} else {
queryMysql("INSERT INTO members VALUE('$user', '$token')");
die ("<h4>Account created</h4>Please Log in.</br></br>");
}
}
}
echo <<<END_
<form method='post' action='signup.php'>$error
<span class='fieldname'>Username</span>
<input type='text' maxlength='16' name='user' value'$user' onBlur='checkUser(this)'/><span id='info'></span></br>
<span class='fieldname'>Password</span>
<input type='text' maxlength='16' name='pass' value='$pass'/></br>
<span class='fieldname'> </span>
<input type='submit' value='Sign up' />
</form></div></br></body></html>
END_;
?>
更改标记
<script type='text/css'>
借
更改标签
<script type='text/css'>
借
我找到了,抱歉。我注意到脚本类型设置为text/css
用字符串书写时很难分辨。我找到了,抱歉。我注意到脚本类型设置为text/css
写字符串时很难分辨。嗯,
?试着去掉类型
属性,或者至少将其更改为“text/javascript”
或“application/javascript”
。旁注:将值
更改为值
,但这是一个打字错误,对吗?@Fred ii-是的,我有一个会话启动();从include'header.php'加载的值,您是否确定它是值?你是在谈论checkUser函数吗?从我开始学习SQL开始,我就这么说了。根据-但是如果您使用某种类型的框架来替换值对值@MunkyMead@Fred-我明白了,我不知道你指的是这个问题。不知怎么的,它一直都在工作。嗯,
?试着去掉类型
属性,或者至少将其更改为“text/javascript”
或“application/javascript”
。旁注:将值
更改为值
,但这是一个打字错误,对吗?@Fred ii-是的,我有一个会话启动();从include'header.php'加载的值,您是否确定它是值?你是在谈论checkUser函数吗?从我开始学习SQL开始,我就这么说了。根据-但是如果您使用某种类型的框架来替换值对值@MunkyMead@Fred-我明白了,我不知道你指的是这个问题。不知何故,它一直都在工作。更好的是,去掉类型
属性。哈哈,我注意到在我的问题发布后,我的编辑器将所有字符串显示为亮橙色。当计时器完成时,将设置为答案更好,只需去掉type
属性。哈哈,我注意到在我的问题发布后,我的编辑器将所有字符串显示为亮橙色。计时器结束时将设置为应答