Выбирать и вводить скопированные в один вход для публикации

Прежде всего, извините за повторную публикацию, я проголосовал за удаление своего старого сообщения, потому что теперь я прошу о помощи в коде, а не только о том, какой путь - лучший маршрут. Любой мой код несколько раз менялся

На моей странице есть раскрывающийся список, чтобы выбрать страну, динамически загруженную из db. Когда пользователь выбирает страну, могут произойти две вещи. 1) Если они выбирают Канаду или США, появляется второе раскрывающееся меню, и пользователь может выбрать регион. 2) Если пользователь выбирает любую другую страну, он создает поле ввода, чтобы пользователь мог ввести регион вместо этого. Все это прекрасно работает.

Теперь есть третий вход, который берет значение провинции/штата, чтобы он мог быть опубликован. Только двое из нас будут использовать эту форму, поэтому меня не беспокоит, что JavaScript отключен в браузере.

Моя проблема заключается в том, что, когда пользователь сначала выбирает Канаду/США и регион, ничто не заполняется третьим вводом, если они не изменят выбор страны. Однако, если они выбирают страну, отличную от Канады/США, и должны набирать регион, она работает так, как ожидалось.

Вот пример проблемы: http://jsfiddle.net/owalsh/BQXZA/3/

Если кто-нибудь скажет мне, почему я буду благодарен, спасибо

1 ответ

Работая здесь: http://jsfiddle.net/5A4v4/11/

HTML:

<form id="customer_bill_add_post" name="customer_bill_add_post">
<select id="country" name="country">
 <option value="0">Select a country</option>
 <option value="CA">Canada</option>
 <option value="US">United States</option>
 <option value="OT">Other</option>

</select>

<select id="province_select" name="province_select">
 <option value="0">Select a Province</option>
 <option value="AB">Alberta</option>
 <option value="AL">Alabama</option>
</select>



 </form>

JQuery: код (произошел дополнительный привязку события изменения), вы можете его убрать.

$(function(){
 //initially hide the textbox
 $("#province_input").hide();
 $("#province_select").hide();

 $('#country').change(function() {
 if($(this).find('option:selected').val() == "CA"){
 $("#province_select").show();
 $("#province_input").hide();
 } else if($(this).find('option:selected').val() == "US"){
 $("#province_select").show();
 $("#province_input").hide();
 } else {
 $("#province_input").show();
 $("#province_select").hide();
 }
 });


$('#country, #province_select, #province_input').bind("change", function() {
 if($('#country').find('option:selected').val() == "CA"){ 
 document.customer_bill_add_post.province.value = document.customer_bill_add_post.province_select.value;
 } else if($('#country').find('option:selected').val() == "US"){
 document.customer_bill_add_post.province.value = document.customer_bill_add_post.province_select.value;
 } else {
 //alert('foo');
 document.customer_bill_add_post.province.value = document.customer_bill_add_post.province_input.value;
 }
}); 


});

Ура,

licensed under cc by-sa 3.0 with attribution.