2010-11-07 3 views
0

ive сделал этот код для динамического изменения второго выбора в зависимости от того, что выбрано на первом. Он работает, но он не работает при загрузке страницы. Страница, на которой находится скрипт, получает значение, отправленное из формы на предыдущей странице; это значение выбирается при первом выборе загрузки страницы, но когда это произойдет, второй выбор не изменяется. Надеюсь, кто-то может понять проблему и помочь мне.Dependent Drop-Downs: измените параметры второго выбора на основе значения первого выбора на загрузке страницы.

Код:

<script type="text/javascript"> 
$(document).ready(function(){ 
$('#CustomFields_21_1').val('<?php echo $_POST['secondform']; ?>') 
$('#CustomFields_21_1').change(function() { 
var options = ''; 
if($(this).val() == 'a') { 
options = '<option value="">-- Seleccione una versión --</option><option value="1">1</option><option value="2">2</option><option value="3">3</option>'; 
} 
else if ($(this).val() == 'b'){ 
options = '<option value="4">4</option><option value="5">5</option>'; 
} 
else if ($(this).val() == 'c'){ 
options = '<option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option>'; 
} 
$('#CustomFields_20_1').html(options); 
}); 
}); 
</script> 

"# CustomFields_21_1" -> это идентификатор из первого выбора

"# CustomFields_20_1" -> это идентификатор из второго выбора

Как вы можете видеть, на странице load # CustomFields_21_1 принимает значение формы POST, которая поступает с предыдущей страницы. В настоящее время параметры выбора # CustomFields_20_1 построены динамически на основе изменения # CustomFields_21_1. Что я хочу сделать, так это динамически изменять параметры # CustomFields_20_1 ТАКЖЕ на загрузке страницы на основе значения, которое принимает # CustomFields_21_1 (значение размещено в форме POST), поэтому без взаимодействия с пользователем.

надежда кто-то может помочь этот нуб

здесь выбирает:

<select name="CustomFields[21]" id="CustomFields_21_1"><option selected="selected">--  Seleccione un modelo --</option><option value="a">a</option><option value="b">b</option>  <option value="c">c</option></select> 

<select name="CustomFields[20]" id="CustomFields_20_1"><option selected="selected">--  Selecciona una versión --</option></select> 
+0

Я думаю, что вам нужно выложить ваши требования немного лучше. Например, если элемент формы x имеет значение y, задайте элемент a формы a значению b. Разбейте его на самые простые части. Если вы нашли время, решение станет таким же простым, как и те детали, которые вы задокументировали. – Scott

ответ

0

Вы должны заставить функцию «изменить» вы прикреплены к вашему первому выбрать для выполнения. Сделав как можно меньше изменений (вы, вероятно, захотите кешировать объекты jQuery).

Поместите это в качестве последней строки внутри вашего $(document).ready:

$('#CustomFields_21_1').trigger('change'); 

т.е .:

<script type="text/javascript"> 
$(document).ready(function(){ 
$('#CustomFields_21_1').val('<?php echo $_POST['secondform']; ?>') 
$('#CustomFields_21_1').change(function() { 
var options = ''; 
if($(this).val() == 'a') { 
options = '<option value="">-- Seleccione una versión --</option><option value="1">1</option><option value="2">2</option><option value="3">3</option>'; 
} 
else if ($(this).val() == 'b'){ 
options = '<option value="4">4</option><option value="5">5</option>'; 
} 
else if ($(this).val() == 'c'){ 
options = '<option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option>'; 
} 
$('#CustomFields_20_1').html(options); 
}); 
$('#CustomFields_21_1').trigger('change'); 
}); 
</script> 
+0

УДИВИТЕЛЬНО, могу я жениться на тебе? omg большое спасибо, что сделал мой день, – sebastian

+0

@sebastian: Это сработало для вас? Я сделал пару исправлений, так как у меня была опечатка в моем первоначальном ответе. Теперь это должно быть правильно. – ryanlahue

+0

он отлично работает! большое спасибо!!! – sebastian

Смежные вопросы