Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在从下拉列表中选择项目后使“自动完成”字段为空_Javascript_Jquery - Fatal编程技术网

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', '');

        }
    }