Javascript 如何在从下拉列表中选择项目后使“自动完成”字段为空
这是我的密码:Javascript 如何在从下拉列表中选择项目后使“自动完成”字段为空,javascript,jquery,Javascript,Jquery,这是我的密码: var availableTags = ["Afghanistan","Albania","Algeria","Andorra","Angola","Antigua and Barbuda","Argentina","Armenia","Australia","Austria","Azerbaijan","Bahrain","Bangladesh","Barbados","Belarus","Belize","Benin","Bhutan","Bolivia","Bos
var availableTags = ["Afghanistan","Albania","Algeria","Andorra","Angola","Antigua and Barbuda","Argentina","Armenia","Australia","Austria","Azerbaijan","Bahrain","Bangladesh","Barbados","Belarus","Belize","Benin","Bhutan","Bolivia","Bosnia and Herzegovina","Botswana","Brazil","Brunei","Bulgaria","Burkina Faso","Burundi","Cambodia","Cameroon","Canada","Cape Verde","Central African Republic","Chad","Chile","China","Columbia","Comoros","Congo","Costa Rica","Croatia","Cuba","Cyprus","Czech Republic","Czechoslovakia","Dem. Rep. of Congo","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Ethiopia","Finland","Finland","France","France","Gabon","Gambia, The","Georgia","Germany","Ghana","Greece","Grenada","Guadeloupe (Fr.)","Guam","Guatemala","Guinea","Guinea-Bissau","Guyana","Haiti","Honduras","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Isreal","Italy","Ivory Coast","Jamaica","Japan","Jordan","Kazakhstan","Kenya","Korea, North","Korea, South","Kuwait","Kyryzstan","Laos","Latvia","Lebanon","Leichtenstein","Lesotho","Liberia","Libya","Lithuania","Luxembourg","Macedonia","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Martinique (Fr.)","Mauritania","Maurtitus","Mexico","Moldova","Monaco","Mongolia","Morocco","Mozambique","Myanmar (Burma)","Namibia","Nepal","Netherlands","New Zealand","Nicaragua","Niger","Norway","Oman","Pakistan","Panama","Paraguay","Peru","Philippines","Poland","Portugal","Puerto Rico","Qatar","Romania","Russia","Rwanda","San Marino","San Marino","Sao Tome and Principe","Saudi Arabia","Senegal","Serbia and Montenegro","Seychelles","Sierra Leone","Singapore","Slovakia","Solvenia","Somalia","South Africa","South Korea","Spain","Sri Lanka","St. Kitts-Nevis","St. Lucia","St. Vincent and the Grenadines","Sudan","Suriname","Swaziland","Sweden","Switzerland","Syria","Tajikistan","Tanzania","Tasmania","Thailand","Timor, East","Togo","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Uganda","Ukraine","United Kingdom","Unites Arab Emirates","Uruguay","USA","Uzbekistan","Vatican City","Venezuela","Vietnam","Virgin Islands (U.K.)","Virgin Islands (U.S.)","Yemen","Zambia","Zimbabwe"];
var country;
$( "#country_name" ).autocomplete({
source: availableTags,
autoFocus: true,
select: function( event, ui ) {
country=ui.item.value;
$('#div_selected_country').text($('#div_selected_country').html()+"\n"+country);
$('#hid_country_names').val($('#div_selected_country').html());
//$('#country_name').val()="";//doesn't become blank.
}
});
});
这是我的html文件
<input name="hid_country_names" id="hid_country_names" type="hidden">
<div id="div_selected_country" style="float:left; width:25%">
当我开始写国家名称时,它会在下拉列表中显示匹配的国家列表。选择国家后,它将显示在文本框中。但是我希望国家名称应该出现在我的div_selected_country(工作正常)中,并将文本框country_name设置为空。正如您在下一行中所写的那样
$('#hid_country_names').val($('#div_selected_country').html());
你应该知道这是应该的
$('#country_name').val('');
或尝试
$('#country_name').text('');
在不带参数的输入字段上调用val()方法将返回值。你的陈述
$('#country_name').val()="";
就是说
some_string = "";
您希望在参数中将其设置为空字符串
$('#country_name').val('');
事件可能正在重新设置它。这应该能奏效
$( "#country_name" ).autocomplete({
source: availableTags,
autoFocus: true,
select: function( event, ui ) {
country=ui.item.value;
$('#div_selected_country').text($('#div_selected_country').html()+"\n"+country);
$('#hid_country_names').val($('#div_selected_country').html());
$(this).val('');
return false;
}
});
使用$(this)作为上下文是ui元素。从方法返回false将防止再次设置自动完成
这个答案也提出了同样的建议,并解释了原因:你或许应该去投票表决那个答案。我试过了,但结果是一样的。“国家/地区名称”文本框不会变为空。请包含要为空的输入的HTML。可能您的选择器不正确。唯一的解决方案是:$(this).val(“”);谢谢克雷德。非常感谢。+1返回错误。我的输入字段显示一个空白输入,在选择上有一个闪烁的光标。即使控制台日志记录输入#在那里显示所选值。
select: function (event, ui) {
event.preventDefault();
country=ui.item.value;
$('#div_selected_country').text($('#div_selected_country').html()+"\n"+country);
$('#hid_country_names').val($('#div_selected_country').html());
if ( ui.item ){
$('#country_name').attr('value', '');
}
}