#javascript #jquery
#javascript #jquery
Вопрос:
Я не могу показать или скрыть компонент из умноженного поля со списком, но я могу показать или скрыть его из исходного поля со списком (первое поле со списком), что мне делать ..?
это функция для умножения поля со списком
function addEmploy() {}
$('#addEmploy').click(function(){
$('#comboEmploy')
.append('<br />')
.append($('#comboEmploy select').first().clone());
});
это скрипт для отображения или скрытия компонента
$("#employ").change(function() {
if($(this).val() == "2"){
$("#comboStudy").show("slow");
}else{
$("#comboStudy").hide("slow");
}
});
Это поле со списком
<span id="comboEmploy">
<select name="employ[]" id="employ">
<option value="NULL" selected >Choose one</option>
<?php foreach ($employs as $employ) :?>
<option value="<?php echo $employ->employ_id; ?>">
<?php echo $employ->employ_name; ?></option>
<?php endforeach; ?>
</select>
</span>
<a href="#" id="addEmploy">Add Employ</a>
Это компонент, который я хочу показать / скрыть
<span id="comboStudy">
<select name="study[]" id="study">
<option selected value=NULL>Choose one</option>
<?php foreach ($studies as $study) :?>
<option value="<?php echo $study->study_id; ?>">
<?php echo $study->study_name; ?></option>
<?php endforeach; ?>
</select>
</span>
Кто-нибудь может мне помочь. спасибо ранее.
Ответ №1:
Когда вы клонируете select
поле, вам нужно указать jQuery клонировать события вместе с ним:
.clone(true);
Ответ №2:
Поскольку вы добавляете элементы в DOM после загрузки страницы, вам необходимо использовать функцию live() для прикрепления их событий:
$("#employ").live("change", function() {
...
}