возможное решение JQuery на основе раскрывающегося списка? - PullRequest
0 голосов
/ 24 июля 2010

Я создаю выпадающее меню на совершенно отдельной странице с помощью функции jquery append. Я получаю дубликаты строк данных, если я просто использую append

  if(params.totalRecords > 50){
         var i, j;
    j = 0;              
    for(i=0; i < params.totalRecords; i++){                 
    if(i%50==0){
    $('#startRecord').append( 
    $('<option></option>').val(i).html((j+1)+'-'+(j+=50)));          
    }
  }             
    $('#dropDownSpan').css('visibility', 'visible'); 
}  

так что теперь, когда я добавлял значения в выпадающий список, он добавлял повторяющиеся строки, как это

<option value=0>1-50</option>
<option value=50>51-100</option>
<option value=0>1-50</option>

в зависимости от того, какой вариант я выбрал бы, он просто дублировал бы его.

Теперь, чтобы избежать этого, я сделал следующее

  if(params.totalRecords > 50){
    $('#startRecord').val(0).html("1-50");
    var i, j;
    j = 0;              
    for(i=0; i < params.totalRecords; i++){                 
    if(i%50==0){
    $('#startRecord').append( 
    $('<option></option>').val(i).html((j+1)+'-'+(j+=50)));          
    }
  }             
    $('#dropDownSpan').css('visibility', 'visible'); 
}    

Теперь проблема в том, что он всегда переустанавливает его на 1-50 записей, причина

$('#startRecord').val(0).html("1-50");

Как я могу показать последний выбранный там. спасибо

Ответы [ 2 ]

1 голос
/ 24 июля 2010

Я собираюсь предложить совершенно другой, надеюсь, более простой подход цикла:

if(params.totalRecords > 50){
  for(var i=0; i < params.totalRecords; i+=50) {
    $('<option></option>', { value: i, html: (i+1)+'-'+Math.min(i+50, params.totalRecords) })
      .appendTo('#startRecord');
  }             
  $('#dropDownSpan').css('visibility', 'visible'); 
} 

Вы можете попробовать здесь , это упрощает общий цикл. Я до сих пор не уверен на 100%, как вы получаете эту дополнительную добавленную строку, вы уверены, что ваш текущий код не будет вызван дважды, с другим счетом totalRecords?

С одной стороны, по поводу вышесказанного, у него немного другой вывод, скажем, 121 запись вместо "101-150", он поставит "101-121" для последнего элемента, который немного более точен, я надеюсь, что это после чего общий результат выглядит следующим образом:

<select id="startRecord">
  <option value="0">1-50</option>
  <option value="50">51-100</option>
  <option value="100">101-121</option>
</select>
0 голосов
/ 26 июля 2010

решил это, используя эту переменную i, j = 0, y = 0;// проверяем, сколько у нас 50блоков1 на 50 записей.В последнем блоке не должно быть всех 50 для (r = 0; r

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...