2016-02-07 2 views
1

Я создал текстовое поле, которое работает с функцией автозаполнения на основе данных из другого списка. Мне нужно очистить текстовое поле, если пользователь не выбрал какой-либо элемент, или он ввел неправильный текст. Ниже мой кодsharepoint jquery autocomplete clear textbox если нет значения

$.ajax({ 
     url: "http://address/_vti_bin/lists.asmx", 
     type: "POST", 
     dataType: "xml", 
     data: soapEnv, 
     contentType: "text/xml; charset=\"utf-8\"", 
     success: function (xmlResponse) { 
      var domElementArray = $("z\\:row", xmlResponse); 
      var dataMap = domElementArray.map(function() { 
       return { 
        value: $(this).attr('ows_AirportCode'), 
        id: $(this).attr('ows_AirportCode') 
       }; 
      }); 
      var data = dataMap.get(); 

      //Find the Sharepoint Portal Search Box (this is a poor selector, but it is not properly named by sharepoint, well it is but INamingContainer getrs in the way) 
      $("input[title='AirportCode Required Field']").autocomplete(
     { 
      source: data, 

      miniLength: 3, 
      response: function (event, ui) { 
       // ui.content is the array that's about to be sent to the response callback. 
       if (ui.content.length == 0) { 
        $("#empty-message").text("No results found"); 
       } else { 
        $("#empty-message").empty(); 
       } 
      } 
     } 
     ); 
     } 
    }); //.ajax 

благодарит

ответ

0

Вы можете подписаться на событие изменения на автозаполнениях и сравнить выбранное значение в отношении вашего массива значений списка для матча:

.autocomplete({ 
    ... 
    .change: function(event, ui) { 
     var input = $("input[title='AirportCode Required Field']"); 
     var selectedValue = input.val(); 
     var valid = false; 
     $.each(data , function (i, item) { 
     if (item.value === selectedValue) valid = true; 
     }); 

     if (valid == false){ 
     // clear the input if not found 
     input.val(''); 
     } 
    } 
})