SELECT и $.POST и IE8

oniq

Registered
Здравейте, имам едни странен проблем, който си ме измъчва и това е благодарение на IE8!

Имам падащо меню с държави.

Код:
	<select name="delivery" id='deliverys' style="height: 20px;">
						<option value="">Choose Country</option>
						<option value=""></option>
		<?php
		
		foreach ($citys as $id => $value) {
		?>	
		<option onclick="d(<?=$id;?>)" value="<?=$value;?>"><?=$value;?></option>
		<?php 
		}
		?>
				</select>

Към него съм вързал проста $.POST
Код:
 // insert delivery post
   function d(country){                
 
     $.post("pay/test", { action: "test", country: country},
       function(data){                                    
        // $("#total_static").html(data).hide('slow'); 	
           $("#test").html(data).show('slow');   
        	
        			 });                
	}


И връщам даден стринг... искам да попитам защо под останалите браузъри всичко работи, само под IE8 не иска!!!

Да не би за него да се добавя някой друг синтаксис?
 
Вместо onclick, използвай onselect, когато искаш да прихванеш събитие, свързано с отделния option.

Варианта с по-малко писане е onchange, но на select елемента, не на option.
 
Всъщност, няма такова събитие onselect за option елемента:
http://www.w3schools.com/tags/tag_option.asp

Ако наистина избраната стойност трябва да е името на града, вместо неговото id, което е супер странно, можеш да използваш onchange на select елемента в комбинация със собствен атрибут на option:

Код:
 <select onchange="d(this.options[selectedIndex].getAttribute('cityID'));" name="delivery" id='deliverys' style="height: 20px;">
                  <option value="">Choose Country</option>
                  <option value=""></option>
      <?php
      
      foreach ($citys as $id => $value) {
      ?>   
      <option cityID="<?php echo $id; ?>" value="<?php echo $value; ?>"><?php $value; ?></option>
      <?php
      }
      ?>
            </select>

Естествено, оптималния вариант е id на града, да бъде като стойност на option и тогава използваш this.value

Код:
<select onchange="d(this.value)">
<option value="0">---избери---</option>
<option value="1">София</option>
</select>
 

Back
Горе