我有一个函数,当用户在employee_number字段中单击/制表时,该函数当前会运行。我希望它在输入的数字长度等于6时运行,而不必离开该字段,因为当我尝试使用制表符时,它与加载下一个字段(这是下拉菜单的一部分)冲突该功能已运行。
我尝试使用.change来运行它,并将约束放入函数中,但是它没有用,我不知道还有什么尝试。
enter_exit.html
{% extends "base.html" %}
{% load core_tags staticfiles %}
{% block main %}
<form id="warehouseForm" action="" method="POST" data-employee-activity-lookup-url="{% url 'operations:employee_activity_search' %}" novalidate >
{% csrf_token %}
<div>
<div>
<div id="employee-name" style="margin-bottom: 10px"> </div>
<label>Employee #</label>
{{ form.employee_number }}
</div>
<div=>
<label>Work Area</label>
{{ form.work_area }}
</div>
<div style="display: none" id="my-hidden-div">
<label>Station</label>
{{ form.station_number }}
</div>
</div>
<div>
<div>
<button>Enter Area</button>
<button>Exit Area</button>
</div>
</div>
</form>
<script>
// Grab the employee name and their current active work log (if any)
$(document).on('blur', "#{{ form.employee_number.id_for_label }}", function(){
var url = $("#warehouseForm").attr('data-employee-activity-lookup-url');
var employeeId = $(this).val();
# ... more fields ...
if (employeeId !== "") {
# .. Rest of function ...
})
</script>
{% endblock main %}
我也尝试使用keydown / keyup,但是它甚至不会产生对该函数的调用。这就是我修改JS的方式
$("#{{ form.employee_number.id_for_label }}").keydown(()=>{
var url = $("#warehouseForm").attr('data-employee-activity-lookup-url');
var employeeId = $(this).val();
console.log(1); //Not even this appears
if (employeeId === 6) {
...
}
})
关于如何进行这项工作的任何想法?
答案 0 :(得分:1)
如果您的ID选择器("#{{ form.employee_number.id_for_label }}"
)被解析为有效的引用(例如,"#id-1234-abc"
),那么您的下一个问题将是有条件的:
if (employeeId === 6) {…
测试输入值$(this).val()
是否为6
—不是多少个字符。为此,您需要类似的东西:
if ( employeeId.length === 6) {…