假设我输入了文本和下拉选项。默认情况下,禁用下拉列表,并启用输入。因此,员工ID输入在验证已键入的值方面发挥着作用。实际上,员工ID输入是用户扫描其员工ID(长度等于6)并将启用drowpdown的位置。另一种绕过扫描员工ID的方法,某些员工将在输入中键入特定的关键字,例如“ KYXY”,然后通过插入他们能够手动键入输入的员工ID的关键字,并在手动输入员工ID后输入length == 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() {
$('#myContent').keyup('input',function(){
var a = "KYXY";
var myNumber = this.value;
if(myNumber == a)
{
$('#dropdownss').prop( "disabled", false );
$('#myContent').val('');
var userlog="1";
if($(this).val().length == 6)
{
if(userlog == "1")
{
//alert("Yay");
$('#myContent').val('');
$('#myContent').focus();
$('#dropdownss').prop( "disabled", false );
}
else
{
$('#dropdownss').prop( "disabled", true );
}
}
}
else if(myNumber !== a)
{
alert("scan only");
$('#myContent').val('');
$('#myContent').focus();
}
});
});
答案 0 :(得分:1)
大概是这样的:
$('document').ready(function() {
$('#myContent').on('input', function() {
var a = "KYXY";
var input = $(this);
var num = input.val();
if (num.length === 6 && !/\D/.test(num)) {
$('#dropdownss').prop("disabled", false);
input.prop('manual', false).val('');
}
else if (input.prop('manual') || ~a.indexOf(num)) {
if (a !== input.val()) return;
input.prop('manual', true).val('');
} else {
alert("scan only");
$('#dropdownss').prop("disabled", true);
$('#myContent').val('');
$('#myContent').focus();
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<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>
答案 1 :(得分:0)
我不得不重写您的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();
}
});
});