2011-04-03 62 views
0

我嘗試爲寫入文本manualy創建輸入文本字段或從列表中選擇(通過回車)。 但我的解決方案doens't工作完美。 當我輸入和寫入manualy時,這是工作。 當我向上/向下箭頭向上/向下顯示字段時不起作用。這個怎麼做?在jquery中用逗號分隔輸入文本字段

$(document).keyup(function(e){ 
     var $hlight = $('li.hlight'), $el = $('li'); 

     if (e.keyCode == 40) { 
      $hlight.removeClass('hlight').next().addClass('hlight'); 

      if ($hlight.next().length == 0) { 
       $el.eq(0).addClass('hlight') 
      } 

      $('input[type=text]').val($('input[type=text]').val() + ($('li.hlight').text())); 

     } else if (e.keyCode === 38) { 
      $hlight.removeClass('hlight').prev().addClass('hlight'); 

      if ($hlight.prev().length == 0) { 
       $el.eq(-1).addClass('hlight') 
      } 

      $('input[type=text]').val($('input[type=text]').val() + ($('li.hlight').text())); 
     }   

     if (e.keyCode == 13) { 
      //alert('enter'); 
      $('input[type=text]').val($('input[type=text]').val() + ', '); 
     } 
    }); 
+0

您可以發佈現場演示[在JS小提琴](http://jsfiddle.net/),[或JS斌](http:// jsbin。 COM /)? – 2011-04-03 11:59:43

回答

0

我創造一些這樣的代碼自動完成/建議插件:

$(document).keydown(function(e){ //klawisz 
     $('#search').val($('#search').val().replace(/[^a-z]/, '')); 

     $.post('rpc.php', {queryString: ""+$('#search').val()+""}, function(data) { 
      if (data.length > 0) {     
       $('#suggest').show().html(data); 
      } 
     }); 
    }); 

    var arr = new Array(); 

    $(document).keyup(function(e){ // strzalka 
     //alert('strzałka'); 

     var $hlight = $('#suggest li.hlight'), $el = $('#suggest li'); 

     if (e.keyCode == 40) { 
      $hlight.removeClass('hlight').next().addClass('hlight'); 

      if ($hlight.next().length == 0) { 
       $el.eq(0).addClass('hlight') 
      } 

      $('#search').val($('li.hlight').text()); 

     } else if (e.keyCode === 38) { 
      $hlight.removeClass('hlight').prev().addClass('hlight'); 

      if ($hlight.prev().length == 0) { 
       $el.eq(-1).addClass('hlight'); 
      } 

      $('#search]').val($('li.hlight').text()); 
     } 

     if ((e.keyCode == 13 || e.keyCode == 188) && $('#search').val().length > 0) { 
      if (arr.indexOf($('#search').val()) === -1) {     
       $('#search').val($('#search').val().replace(/\,/i, '')); 

       arr.push($('#search').val()); 
      }    

      $('#search').val(''); 
      $('#suggest').hide(); 

     } 

     $('#tags').html(''+arr); 
    }); 

一切工作正常......但是當我使用箭頭(向上或向下),並從列表中選擇,字複製輸入並在列表中只留下這一個字。 我想在列表中滾動,但仍顯示所有暗示詞

相關問題