2016-07-19 3 views
0

У меня есть следующие функции, чтобы сделать поиск в опциях избранного с помощью входного текста:JQuery перезагружать/обновить/повторный рендеринг выберите контроль

Этой функция выполняет поиск при каждом нажатии клавиши:

Позже я хочу сделать сравнение, чтобы узнать, что то, что я написал во входном тексте, такое же, как часть текста, содержащегося в одной из опций в выборе, я делаю сравнение, когда «введите ключ», или «клавиша табуляции»:

$('input#id_nit_del_cliente').keydown(function(e){ 
      var keyCode = e.keyCode || e.which; 
      if (e.keyCode==9||e.keyCode==13) { 
      e.preventDefault(); 
      var text=$("#id_cliente_idcliente option:selected").text().split(' '); 
      var nit = $('input#id_nit_del_cliente').val(); 
      console.log("Nit del select:"+text[0]); 
      console.log("Nit del text:"+nit); 
      if(text[0]===nit) 
      { 
       $('input#id_codigo_producto').focus(); 
       console.log("Solo nit:"+text[0]); 
      } 
      else { 
       alert('El cliente no existe'); 
       $("#id_cliente_idcliente").selectmenu("refresh", true); 
       $('input#id_nit_del_cliente').val(''); 
       $('input#id_nit_del_cliente').focus(); 
      } 
      } 
     }); 

Весь этот код работает, но когда он входит в «else» второй функции, я вручную очищаю входной текст и записываю что-то еще, и он работает, но в третий раз он перестает работать, вот почему я хочу чтобы перезагрузить выделенный текст, потому что, когда я нажимаю кнопку обновления браузера, выбор все еще показывает последнее выбранное значение, но поиск снова работает, но после двух намерений он снова не работает. Я не могу использовать какой-либо подключаемый модуль jquery, потому что «выбирает», и все элементы формы автоматически генерируются DJango 1.8 ModelForm. Я попробовал selectmenu («обновить», истинный) метод, но лог консоли показывает это:

TypeError: $(...).selectmenu is not a function 

Вот HTML:

<label>Cliente: </label><input id="id_nit_del_cliente" maxlength="13" name="nit_del_cliente" type="text" /> 
<select id="id_cliente_idcliente" name="cliente_idcliente"> 
<option value="" selected="selected">---------</option> 
<option value="1">123456-k - Nombre: Esteban José López Ambrosio</option> 
<option value="2">4543243-5 - Nombre: Nombre1 Apellido1</option> 
<option value="3">843453-5 - Nombre: Persona Prueba Probando Fecha</option> 
</select> 
<label for="id_codigo_producto">Código: </label><input id="id_codigo_producto" maxlength="25" name="codigo_producto" type="text" /> 

Я также использую этот код, я нашел его где-то здесь, в StackOverflow (это не важно, работает):

$.extend($.expr[":"], { 
     "starts-with": function(elem, i, data, set) { 
     var text = $.trim($(elem).text()), 
     term = data[3]; 
     // first index is 0 
     return text.indexOf(term) === 0; 
     }, 
     "ends-with": function(elem, i, data, set) { 
     var text = $.trim($(elem).text()), 
     term = data[3]; 
     // last index is last possible 
     return text.lastIndexOf(term) === text.length - term.length; 
     } 
    }); 
+0

Вы хотите выбрать, чтобы вернуться к этому '<опция значение = "" selected = "selected"> --------- 'опция? –

+0

@StephanSutter На самом деле, да, я хочу это сделать, как вы думаете, что решит мою проблему? Потому что я только то, что выбор был застрял, и выбранный вариант не имел значения, но если у вас есть решение, я попробую его: D – masozow

+0

Не понимаю, вы сказали, что хотите найти варианты. Но почему вы ищете только выбранный вариант? Здесь 'var text = $ (" # id_cliente_idcliente option: selected "). Text(). Split ('');' –

ответ

0

Добавьте это в начале вашего JavaScript

var selectDefault = $("#id_cliente_idcliente").html();

И тогда в вашем еще заявлении, удалите этот

$("#id_cliente_idcliente").selectmenu("refresh", true);

Затем добавьте этот

$("#id_cliente_idcliente").html(selectDefault);

+0

Это сработало! Большое вам спасибо, я потратил три часа на то, чтобы найти решение. Я noob с JQuery и Javascript haha. Ты обалденный! – masozow

+0

@masozow Вот где мы все начинаем. Удачи! –

Смежные вопросы