Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Скрыть два элемента


Автор: sashgera 16.9.2015, 02:38
Здравствуйте
Есть JS который скрывает элемент fax_field при выборе радиобаттона:
Код

<script type="text/javascript">
var inp = document.getElementsByName('payment_method_id');
var txt = document.getElementById('fax_field');
function func (elm) {
    if (elm.id == "payment_method_id_23" && elm.checked)
    txt.style.display = "none";
    else
    txt.style.display = "";   
    }
      
for (var i=0;i<inp.length;i++){
inp[i].onchange = function () {func(this)};
}   
</script>

Но мне нужно скрыть еще один элемент - fax_input
как можно оптимизировать js, чтобы скрывалось сразу два элемента
пытался так, не получилось:
Код

var txt = document.getElementById('fax_field', 'fax_input');

Автор: _zorn_ 16.9.2015, 05:54
Ты хоть бы прочитал основы яваскрипт.
Код

<script type="text/javascript">
var inp = document.getElementsByName('payment_method_id');
var fax_txt = document.getElementById('fax_field');
var fax_inp = document.getElementById('fax_input');
function func (elm) {
    if (elm.id == "payment_method_id_23" && elm.checked){
       fax_txt.style.display = "none";
       fax_inp.style.display = "none";
    }else{
       fax_txt.style.display = "";   
       fax_inp.style.display = "";
    }
}
      
for (var i=0;i<inp.length;i++){
   inp[i].onchange = function () {func(this)};
}   
</script>


На jQuery это все будет выглядеть попроще
Цитата

var toggleEls = $('#fax_field, #fax_input');
$('[name="payment_method_id"]').change(function(){
   if (this.id == "payment_method_id_23" && elm.checked)
     toggleEls.hide();
    else
      toggleEls.show();
    }

});

Автор: sashgera 16.9.2015, 14:49
_zorn_,  спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)