2013-08-18 3 views
-1

Я пытаюсь заменить элемент select. Однако вместо замены выбора с помощью идентификатора «Base» в нем выбирается новый выбор с тем же идентификатором. Ниже перечислены соответствующие части моего кода. Какая часть, по вашему мнению, создает дубликат? Проблема может быть замечена на этом сайте при поиске. http://bahcalculator.org/nano/Заменить select с помощью jQuery

<select class="base" id="Base" onChange="codeAddress2();"> 
    <option>Select State First...</option> 
</select> 

function getbases2(){ 
    var S=$('#search').val(); 
    $.post("getbases2.php", {S:S}, 
     function(data) { 
      $('#Base').html(data); 
     }); 
} 
//getbases2.php 

$S=$_POST['S']; 
$re=mysql_query(" SELECT * FROM state_bases WHERE Base='$S' "); 
$ro=mysql_fetch_assoc($re); 
extract($ro); 

echo " 
    <select class='base' id='Base' onchange='codeAddress2();'> 
     <option>Select base</option> 
    "; 

$re=mysql_query(" SELECT Base FROM state_bases WHERE State='$State' ORDER BY Base ASC"); 
while ($ro=mysql_fetch_assoc($re)){ 
    extract($ro); 
    if ($Base!=""){ 
    echo " 
     <option 
     "; 
     if ($Base=="$S"){ echo " selected='selected' ";} 
      echo " 
      >$Base</option> 
     "; 
    } 
} 
echo " 
    </select> 
    <script type='text/javascript'> 
     $('#State').val('$State'); 
      codeAddress2(); 
    </script> 
    "; 

ответ

1

$.html() вызов будет обновлять содержимое вашего элемента: он вставляет данные «» внутри избранных. Вместо этого вы должны использовать $.replaceWith(): http://api.jquery.com/replaceWith/.

+0

Спасибо. На данный момент обвязка в div устраняет мою проблему. Я попытаюсь узнать больше о replaceWith(), чтобы я мог реализовать это в будущем. – Casey

1

Ну, это именно то, что вы говорите - сгенерируйте <select> в #Base, который является <select>. Попробуйте приблизиться к началу <select> с помощью <div id="wrap-around"></div>, если вы хотите его заменить.