0

我正在使用下面的代码来验证文本框中的十六进制数字

$(document).ready(function () {
    $('#vbus-id').keyup(function () {
        var text_value = document.getElementById("vbus-id").value;

        if (!text_value.match(/\b[0-9A-F]\b/gi)) {
            document.getElementById("vbus-id").value = "";
            //  document.getElementById("vbus-id").focus(); 
            var message = "You have entered a invalid id.Vbus id ranges         from 0 to F in hexadecimal";
            test.innerHTML = message;
        }
    });
});

如果输入了任何数字以外的任何数字0 to 9A to F它将清除文本框并在下面显示警告消息。但是如果我在那之后添加一个正确的数字,警告信息就不会被清除。如果在输入错误后输入有效条目,如何清除警告消息?

jsFiddle

4

2 回答 2

1

您已经定义if了表单不验证会发生什么(设置消息),但您还需要定义在相反情况下会发生什么(else):

$(document).ready(function () {
    $('#vbus-id').keyup(function () {
        var text_value = document.getElementById("vbus-id").value;

        if (!text_value.match(/\b[0-9A-F]\b/gi)) {
            document.getElementById("vbus-id").value = "";
            //  document.getElementById("vbus-id").focus(); 
            var message = "You have entered a invalid id.Vbus id ranges         from 0 to F in hexadecimal";
            test.innerHTML = message;
        } else test.innerHTML = '';
    });
});
于 2013-10-10T15:16:44.300 回答
0

您可以尝试始终在 keyup 上将消息设置为空白...

$('#vbus-id').keyup(function () {
    test.innerHTML = "";
    var text_value = document.getElementById("vbus-id").value;

...
于 2013-10-10T15:17:17.510 回答