javascript - 如果用户删除单词则运行函数

标签 javascript jquery

所以我有一个 jQuery 代码用于将关键字发送到另一个页面。在该页面上我有所有国家/地区的名称。我的代码也工作得很好,我定义了我的函数,条件是如果输入文本的长度超过 2,则运行其中的函数,但是,我遇到了这个问题,例如当我写下城市名称时,它工作得很好并从ajax页面返回正确的数据我的问题是当用户想要用退格键或其他东西删除该单词时我想删除所有以前发送到ajax页面的数据但由于我的情况它不起作用。

如何定义用户是否删除“运行我的函数”一词?

这是我的代码:

var prevXHR = null; //global
$('.country').each(function() {
  $(this).on('keyup', function(e) {
  var _this = this;
  var element = $(this).val().length;
  if (e.which !== 0 &&
     !e.ctrlKey && !e.metaKey && !e.altKey
    ){
		if (element > 2) {
		 var val = $(this).val()
		 $(this).val(val)
		 
		     prevXHR = $.ajax({
                 url: "ajaxpage.htm",
                 type: "get",
                 contentType: 'application/json; charset=utf-8',
                 data: {
                     key: $(this).val()
                 },
                 success: function(result) {

                 $(_this).closest(".search_div").find(".co").empty().html(result)

                 },
                 beforeSend: function(){
                     if(prevXHR && prevXHR.readyState != 20){
                         //before sending any new request neutralize any pending ajax call
                         prevXHR.abort();
                         prevXHR = null;
                     }
                 }

              });

			
		}
		
	}
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div class="search_div"> 
<input type="text" value=""  class="country" autocomplete="off" />
<div class="result"></div>
</div>

最佳答案

在您的代码中,您已经检查输入的长度是否大于 2,然后继续进行 ajax 调用。

只需在后面添加 else 部分即可。

if (element > 2) {
    // ...do the ajax stuff here
} else {
   // the input length was shorter than 2 characters...

   // remove all HTML elements here

   $('div#to_be_removed').remove();   //or something like that

}

关于javascript - 如果用户删除单词则运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49093205/

相关文章:

javascript - JQuery不会提交表单,因为它有多个表单按钮

javascript - 有没有办法知道 3 个(或更多)幻灯片中的哪一个处于事件状态?

jquery - 当我使用 GM_setValue 时,Greasemonkey/Tampermonkey 对我的 jQuery 对象做了什么?

javascript - 如何使用 Ajax 和 JSON 制作下拉菜单?

javascript - 如何在action类中识别两个不同的jsp页面按钮?如何编写条件,基于jsp页面查看按钮和查看全部按钮?

javascript - jquery 客户端在关联多维数组上分页

javascript - 右侧的 flexisel 响应式轮播 jQuery 插件列表

javascript - 在复选框的更改事件中添加和删除数组内的值

javascript - 获取完整的实际 html 页面源,包括框架集

javascript - Javascript 计算器应用程序中的前导零和小数