如何检测输入何时更改?

时间:2010-06-24 22:11:52

标签: php javascript html

通过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>

7 个答案:

答案 0 :(得分:4)

您正在寻找的是onChange事件。例如,如果您使用的是prototype.js,则可以使用以下方法:

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

答案 1 :(得分:4)

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

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

这样的事情。那么您显然必须检查ajax响应并显示“用户名OK”或“用户名不酷”等消息。

答案 2 :(得分:1)

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

也许像这样使用onkeypress:
&LT; input type =“text”onkeypress =“alert('你按了一个键');” /&gt;

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

在javascript中,您可以将onchange事件应用于输入以检测用户在完成输入后输入的内容,或者在用户输入数据时监听onkeypress事件。

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

将您的功能更改为:

function userCheck() {
    if(document.getElementById("username").value.length > 5) {
      //no error
    } else {
      //error
    }
}

或者在jQuery中:

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