Javascript 使用jquery验证输入值

Javascript 使用jquery验证输入值,javascript,php,jquery,html,Javascript,Php,Jquery,Html,假设我得到了输入文本和下拉选项。默认情况下,下拉菜单处于禁用状态,输入处于启用状态。因此,员工id输入扮演着验证已输入值的角色。实际上,员工id输入是用户扫描其员工id的地方,长度等于6,并且将启用DrowDown。另一种绕过扫描员工id的方法是,某些员工将在输入处键入特定关键字,例如“KYXY”,通过插入关键字,他们能够手动键入输入的员工id,并且一旦员工id手动输入长度==6,下拉菜单将启用。。对我来说这有点棘手 <input type="text" id="myContent" cl

假设我得到了输入文本和下拉选项。默认情况下,下拉菜单处于禁用状态,输入处于启用状态。因此,员工id输入扮演着验证已输入值的角色。实际上,员工id输入是用户扫描其员工id的地方,长度等于6,并且将启用DrowDown。另一种绕过扫描员工id的方法是,某些员工将在输入处键入特定关键字,例如“KYXY”,通过插入关键字,他们能够手动键入输入的员工id,并且一旦员工id手动输入长度==6,下拉菜单将启用。。对我来说这有点棘手

<input type="text" id="myContent" class="form-control" value="" placeholder="Staff ID">

<select class="form-control" id="dropdownss" disabled="" value="Disabled value">
<option>Select Shift</option>
<option>A</option>
<option>B</option>
<option>C</option>
</select>

我不得不重写jQuery代码的很大一部分。但这应该行得通

$('document').ready(function() {
    var myContent =  $('#myContent');
    var dropdown = $('#dropdownss');

    myContent.on('keyup', function() {
        var a = "KYXY";
        var myNumber = $(this).val();

        if (myNumber ==  a) {
            dropdown.removeAttr("disabled");
            myContent.val('');

            var userlog = "1";

            if ($(this).val().length == 6) {
                if (userlog == "1") {
                    // Alert("Yay");
                    myContent.val('');
                    myContent.focus();
                    dropdown.removeAttr('disabled');
                } else {
                    dropdown.attr('disabled', 'disabled');
                }
            }
        } else if (myNumber.length >= 6 && myNumber != a) {
            alert("Scan only");
            myContent.val('');
            myContent.focus();
        }
    });
});

可能是这样的:

$('document').ready(函数(){
$('#myContent')。on('input',function(){
var a=“KYXY”;
var输入=$(此);
var num=input.val();
如果(num.length==6&&!/\D/.test(num)){
$('#dropdowns').prop(“禁用”,false);
input.prop('manual',false).val('');
}
else if(input.prop('manual')| | ~a.indexOf(num)){
如果(a!==input.val())返回;
input.prop('manual',true).val('');
}否则{
警报(“仅扫描”);
$('#dropdowns').prop(“disabled”,true);
$('myContent').val('');
$('myContent').focus();
}
});
});

选择班次
A.
B
C

如果用户手动输入值(而不是将整个KYXY值复制/粘贴到框中),则在他们键入任何内容时,会清除并给出仅扫描消息。KYXY代码是否应该类似于“管理器覆盖”您的典型员工不应该能够输入或查看?如果是这样,您可能希望执行某种服务器端验证,而不是在此处以明文形式显示。如果普通员工有权访问它,这似乎很容易被滥用。不过,显然,在客户端执行此操作会使这成为一个毫无意义的问题。它是有效的在编辑了一些代码之后。只是不知道!/\D/.test(num)、input.prop('manual')和~a.indexOf(num)for.@NathanCampion不是普通员工有权访问。只是某些人有权访问带有此类关键字的部件,以进行测试,而不是扫描。
$('document').ready(function() {
    var myContent =  $('#myContent');
    var dropdown = $('#dropdownss');

    myContent.on('keyup', function() {
        var a = "KYXY";
        var myNumber = $(this).val();

        if (myNumber ==  a) {
            dropdown.removeAttr("disabled");
            myContent.val('');

            var userlog = "1";

            if ($(this).val().length == 6) {
                if (userlog == "1") {
                    // Alert("Yay");
                    myContent.val('');
                    myContent.focus();
                    dropdown.removeAttr('disabled');
                } else {
                    dropdown.attr('disabled', 'disabled');
                }
            }
        } else if (myNumber.length >= 6 && myNumber != a) {
            alert("Scan only");
            myContent.val('');
            myContent.focus();
        }
    });
});