Javascript 为什么我的函数checkUser()未定义?

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

我在注册页面中创建了一个简短的脚本,它在第6行定义了函数checkUser(user)

现在,在包含注册表单HTML的代码的底部,我在名为
'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'>&nbsp;</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
属性。哈哈,我注意到在我的问题发布后,我的编辑器将所有字符串显示为亮橙色。计时器结束时将设置为应答