Php 如何检测输入何时更改?

Php 如何检测输入何时更改?,php,javascript,html,Php,Javascript,Html,通过JavaScript、PHP或HTML。 我想这样做是为了检查是否允许使用用户名(在我们这边) 对不起,没有详细说明。 如果用户名太短,它旁边会出现一条消息(我会做这部分),说它太短,但要自动完成此操作,我需要检测它 <script type="text/javascript"> document.getElementById('username').onchange=userCheck; function userCheck() { document.getElemen

通过JavaScript、PHP或HTML。 我想这样做是为了检查是否允许使用用户名(在我们这边)

对不起,没有详细说明。 如果用户名太短,它旁边会出现一条消息(我会做这部分),说它太短,但要自动完成此操作,我需要检测它

<script type="text/javascript">
document.getElementById('username').onchange=userCheck;
function userCheck() {
    document.getElementById("usercheck").innerHTML="kk";
}
</script>

<form action="devlabs.php">
Username: <input type="text" id="username"/><em id="usercheck"></em>
</form>

document.getElementById('username')。onchange=userCheck;
函数userCheck(){
document.getElementById(“usercheck”).innerHTML=“kk”;
}
用户名:

为什么不在用户提交用户名时进行检查?

您要查找的是
onChange
事件。例如,如果您使用的是prototype.js,则以下操作可以实现此目的:

$('usernameFieldId').observe('change', usernameValidaitonFunction);

您需要在输入元素上使用onchange事件。然后在每次调用中执行Ajax请求,并在服务器上检查用户名是否可接受

document.getElementById('username_input').onchange = checkIfTaken;
function checkIfTaken() {
  ajax_check_username(this.value);
}

差不多吧。然后,您显然必须检查ajax响应并显示类似“username OK”或“username is not cool”的消息。在javascript中,您可以对输入应用onchange事件来检测用户在完成输入后输入的内容,或者在用户输入数据时监听onkeypress事件


然后,您可以调用验证例程并根据需要通过输入修改消息。

使用javascript处理该输入的DOM事件。请参阅以获取列表

可以这样使用onkeypress:


如果要跟踪其旧值并进行比较,请使用变量。这是一个使用onkeypress的示例。

关于onkeypress的使用,最好使用onchange。例如,如果用户使用鼠标将文本粘贴到框中,onkeypress将不会注册,但onchange将注册。

将您的功能更改为:

function userCheck() {
    if(document.getElementById("username").value.length > 5) {
      //no error
    } else {
      //error
    }
}
或者在jQuery中:

$(function() {
   $("#username").change(function() {
      if($("#username").val().length > 5) ... 
   });
});

我试过了,但没有成功。你能检查一下吗?我将在问题中发布它。它不起作用,因为当浏览器解析脚本元素时,它没有“用户名”文本输入,所以不知道它存在。您需要学会调试自己的代码-安装Firebug!将脚本放在正文的末尾,正好在closing/body标记之前。此外,请选中this.value.length以检查用户名的长度。