У меня четыре элемента <select>
.
<div id="select-countries-container">
<select name="countryId" id="select-countries">
<option value="">Choose Country »</option>
<?php foreach($location->fetch(array('table' => 'countries')) as $country) { ?>
<option value="<?php echo $country['id']; ?>"><?php echo $country['name']; ?></option>
<?php } ?>
</select>
</div>
<div id="select-states-container"><select disabled="disabled"><option value="">Choose State »</option></select></div>
<div id="select-cities-container"><select disabled="disabled"><option value="">Choose City »</option></select></div>
<div id="select-areas-container"><select disabled="disabled"><option value="">Choose Area »</option></select></div>
дочерний элемент <select>
заменен кодом, полученным от Ajax, вот код Ajax, который я использую.
$('#select-countries').change(function(){
var countryId = $(this).val();
if(countryId == ''){
$('#select-states-container').html(chooseState);
} else {
$.ajax({
type: 'POST',
url: 'process.php',
data: 'countryId='+countryId,
beforeSend: function() {
$('#select-states-container').html(loadingText);
},
success: function(states){
if(states == 'null') {
$('#select-states-container').html(emptyState);
} else {
$('#select-states-container').html(states);
}
}
});
}
});
и данные, извлекаемые из process.php, равны.
$select = '<select name="stateId" id="select-states">';
$select .= '<option value = "">Choose State »</option>';
foreach($states as $state) {
$select .= '<option value = "'.$state['id'].'">'.$state['name'].'</option>';
}
$select .= '</select>';
echo $select;
, пока здесь все не работает идеально, проблема начинается, когда я выбираю состояния из второго <select>
, то есть <select name="stateId" id="select-states">
, полученного из процесса.php, когда я выбираю значение из этого, оно не вызывает функцию, с которой оно связано, я не уверен, что происходит, вот что я пытался сделать.
$('#select-states').change(function(){
alert('Fire');
});
, и это не срабатывает,что не так с моим кодом?
спасибо.