2015-07-22 2 views
1

У меня есть функция Javascript, которая автоматически заполняет поля формы на основе доступного списка адресов. Если пользователь выбирает вариант, который является страной, отличной от США, мы не будем запрашивать поля Zip Code/State в нашей форме, которые заполняются (все «необходимые» проверки обрабатываются с помощью «data-required = true»). Форма динамически генерируется, поэтому я не могу использовать метод .change(), который предлагают некоторые люди.Обнаружить, если Dropdown был изменен функцией Javascript

У меня есть функция «Изменить» слушателя, чтобы удалить атрибут «требуется данные», который работает, если они нажмут раскрывающийся список Страны и выберите другую страну. Однако это не работает, когда функция Javascript меняет это же раскрывающееся меню.

jQuery(document).ready(function() { 

    jQuery('body').on('change','#coHCOUN',function() { 
     if(jQuery(this).val() == 'US') { 
      jQuery('#coHPOST').attr('data-required','true'); 
      jQuery('#coHSTE').attr('data-required','true'); 
     } else { 
      jQuery('#coHPOST').removeAttr('data-required'); 
      jQuery('#coHSTE').removeAttr('data-required'); 
     } 
    }); 
}); 

Функция, которая захватывает скрытые значения формы при выборе адреса и применяет их к форме. Это старый код написан на JavaScript ванильным, не JQuery:

function SetShipTo(CIPID) { 
    document.getElementById("coHNAME").value=document.getElementById("vSHIPTO" + CIPID + "HNAME").value; 
    document.getElementById("coHATN").value=document.getElementById("vSHIPTO" + CIPID + "HATN").value; 
    document.getElementById("coHAD1").value=document.getElementById("vSHIPTO" + CIPID + "HAD1").value; 
    document.getElementById("coHAD2").value=document.getElementById("vSHIPTO" + CIPID + "HAD2").value; 
    document.getElementById("coHAD3").value=document.getElementById("vSHIPTO" + CIPID + "HAD3").value; 
    document.getElementById("coHSTE").value=document.getElementById("vSHIPTO" + CIPID + "HSTE").value; 
    document.getElementById("coHPOST").value=document.getElementById("vSHIPTO" + CIPID + "HPOST").value; 
    document.getElementById("coHCOUN").value=document.getElementById("vSHIPTO" + CIPID + "HCOUN").value; 
    document.getElementById("coHVIA").value=document.getElementById("vSHIPTO" + CIPID + "HVIA").value; 
    document.getElementById("coHSHPR").value=document.getElementById("vSHIPTO" + CIPID + "HSHPR").value; 
    document.getElementById("coCIPLOC").value=document.getElementById("vSHIPTO" + CIPID + "CIPLOC").value; 
    document.getElementById("SAVESHIPTOFU").checked=false; 
} 

Есть еще один слушатель событий, я могу добавить, чтобы обнаружить, если значение изменяется от яваскрипта функции? Я не хочу, чтобы добавить дополнительный код для функции автоматического заполнения, если это возможно

+1

У вас есть контроль над JavaScript, который меняет выпадающий список? Можете ли вы его предоставить? – George

+0

Схват кода сейчас. Будет обновлен вопрос с ним –

+0

возможный дубликат события [Trigger change() при установке значения