我正在处理表单以向项目添加成员。只能添加其配置文件记录在系统中的成员。有一个名称输入字段和一个位置选择框。默认情况下,位置选择框被禁用。
这个想法:
用户键入名称,将显示自动完成下拉列表。下拉列表包含其配置文件记录在系统中的成员的名称。
用户在下拉列表中选择一个名称,位置选择框将不会被禁用。
如果在此之后,用户对名称输入字段进行了任何更改,则会再次禁用位置选择框,并再次显示自动完成下拉列表。
我将禁用的事件放入自动完成的响应事件中。
问题:当我将Backspace放入输入字段时,位置选择框被禁用。但是当我按下Ctrl + A然后退回Backspace时,它就不是了。我该如何解决这个问题?
$("#autocomplete").autocomplete({
source: function(request, response) {
//some ajax stuffs
},
select: function (e, ui) {
$('#verified').val('true'); //the name is already recorded
$('#selectPosition').removeAttr('disabled');
},
response: function(event, ui) {
if($('#verified').val() == 'true') {
$('#verified').val('');
$('#selectPosition').attr('disabled','disabled');
}
}
})
答案 0 :(得分:1)
输入框中发生更改时会触发.change()方法。当焦点移出输入框时,会检测到此更改。 无论更改如何进行,它都可以工作 - 您是使用退格键删除字符/字符,还是使用Ctrl + A选择整个文本并使用退格键将其删除。 将焦点移出输入框时会触发该事件。
答案 1 :(得分:-1)
您可以使用.keyup()而不是.change(),以便每次释放密钥时都会更新。