微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用onKeyUp时在javascript中禁用箭头键

搜索了这个,但我无法找到一个问题..可能我没有使用适当的关键字..如果它是重复我很抱歉

这是我的问题.我用HTML,PHP,AJAX和Javascript编写了代码.我在输入每个字符后检查数据库中的在线用户名可用性.问题是onKeyUp也检测到箭头键作为输入

left and right arrow keys

因此,当我尝试在文本字段中输入的文本之间插入一个字符时,光标会自动移动到文本字段的末尾.因此,文本之间的修改是不可能的.

这是我的HTML代码

<input type = "text" name = "txt_username" id = "user" onKeyUp = "check_username(this.value)">
<span id = "check" style = 'color: green; font-size: 20px'> </span> <br>

这是check_username()函数

function check_username(str) {
    xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            var arr = xmlhttp.responseText.split("^");
            document.getElementById("user").value = arr[1];

            if (arr[0] == 2) {
                $("#check").html("Enter a username of at least 4 characters");
            } else if (arr[0] == 1) {
                $("#check").html("Username already exists");
            } else {
                $("#check").html("Username available");
            }
        }
    }
    xmlhttp.open("GET", "username_check.PHP?txt_username=" + str, true);
    xmlhttp.send();
}

这是我的username_check.PHP

<?PHP
MysqL_connect("localhost", "root", "");
MysqL_select_db("company");

$username = ($_REQUEST['txt_username']);
$a = 0;

if (strlen($username) < 4) {
    $a = 2;
    echo $a . "^" . $username;
} else if (checkexistence($username)) {
    $a = 1;
    echo $a . "^" . $username;
} else {
    $a = 0;
    echo $a . "^" . $username;
}

function checkexistence($username) {
    $check = MysqL_query("select username from employee");

    while ($row = MysqL_fetch_array($check)) {
        if (strcmp($username, $row['username']) == 0) {
            return true;
        }
    }
    return false;
}
?>

我怎么能以某种方式管理(通过禁用或保持一些检查)箭头键,以便可以插入文本?

解决方法:

就这个:

<input type = "text" name = "txt_username" id = "user" onKeyUp = "if(!(event.keyCode>36&&event.keyCode<41)){check_username(this.value)}">

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐