2016-01-16 4 views
0

У меня есть существующий код jquery, где он скрывает divs, если выбран переключатель. Однако, когда страница загружается. Если этот переключатель уже установлен, я хочу иметь возможность скрывать divs, не щелкая ничего.Как скрыть divs, когда переключатель установлен на загрузке страницы?

<script> 
    $('input[name=resident]').click(function() { 
      if (this.id == "residentNo") { 
       $(".d").hide('slow'); 
       $('.d').find('#precinctNum').val(''); 
       $('.d').find('#yearStartedLiving').val('');     
      } else { 
       $(".d").show('slow'); 
       $('.d').find('#precinctNum').val(''); 
       $('.d').find('#yearStartedLiving').val(''); 
      } 
     });  
</script> 

HTML форма:

<label class="radio-inline"><input type="radio" class = "res" id = "residentYes" name="resident" value="Yes" checked> Yes</label> 
<label class="radio-inline"><input type="radio" class = "res" id = "residentNo" name="resident" value="No" > No</label> 

<div class="d item form-group" > 
    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Precinct Number <span class="required">*</span> 
    </label> 
<div class="col-md-6 col-sm-6 col-xs-12"> 
    <input id="precinctNum" class="form-control col-md-5 col-xs-12" name="precinctNum" data-validate-length-range="7" required="required" type="number"> 
</div> 
</div> 

<div class="d item form-group"> 
    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Start of Residency (Year) <span class="required">*</span> 
    </label> 
<div class="col-md-6 col-sm-6 col-xs-12"> 
    <input type="text" id="yearStartedLiving" name="yearStartedLiving" class="form-control col-md-5 col-xs-12" required="required" data-inputmask="'mask': '9999'"> 
</div> 
</div> 

Я пытался в течение нескольких часов, и это не похоже на работу. Ваша помощь будет очень признательна! Спасибо!

ответ

1
document.addEventListener("DOMContentLoaded", function(event) { // Will check after DOM is ready 
     if($('#residentNo').is(':checked')){ // Check if residentNo is checked 
     toggleDiv("residentNo") 
     } 
     }); 


    $('input[name=resident]').click(function() { 
    toggleDiv(this.id) 

    }) 

    function toggleDiv(id){ 
       if (id == "residentNo") { 
        $(".d").hide('slow'); 
$(".d").find('#precinctNum, #yearStartedLiving, #birthplace, #weight, #height, #income').val(''); 

       } else { 
        $(".d").show('slow'); 
$(".d").find('#precinctNum, #yearStartedLiving, #birthplace, #weight, #height, #income').val(''); 

       } 
      }; 

JSFIDDLE

Примечание: В этом примере я поставил residentNo в checked демо это

+0

ЭТО РАБОТАЕТ ДЛЯ МЕНЯ !! СПАСИБО БОЛЬШОЕ!! Наконец, моя проблема была решена благодаря вам! Мои товарищи по команде говорят спасибо. –

+0

@WandaMaximoff подумайте о принятии в качестве ответа – brk

+0

сделано. Спасибо!!! –

1

Вы можете сделать это, как показано ниже. Просто добавьте код в $(document).ready. Надеюсь, поможет.

if($('#residentNo').is(':checked')){ 
 
    $(".d").hide(); 
 
    $('.d').find('#precinctNum, #yearStartedLiving').val(''); 
 
} 
 

 
$('input[name=resident]').click(function() { 
 
    if (this.id == "residentNo") { 
 
     $(".d").hide('slow'); 
 
     $('.d').find('#precinctNum, #yearStartedLiving').val('');    
 
    } else { 
 
     $(".d").show('slow'); 
 
     $('.d').find('#precinctNum, #yearStartedLiving').val(''); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<label class="radio-inline"><input type="radio" class = "res" id = "residentYes" name="resident" value="Yes" checked> Yes</label> 
 
<label class="radio-inline"><input type="radio" class = "res" id = "residentNo" name="resident" value="No" > No</label> 
 

 
<div class="d item form-group" > 
 
    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Precinct Number <span class="required">*</span> 
 
    </label> 
 
<div class="col-md-6 col-sm-6 col-xs-12"> 
 
    <input id="precinctNum" class="form-control col-md-5 col-xs-12" name="precinctNum" data-validate-length-range="7" required="required" type="number"> 
 
</div> 
 
</div> 
 

 
<div class="d item form-group"> 
 
    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Start of Residency (Year) <span class="required">*</span> 
 
    </label> 
 
<div class="col-md-6 col-sm-6 col-xs-12"> 
 
    <input type="text" id="yearStartedLiving" name="yearStartedLiving" class="form-control col-md-5 col-xs-12" required="required" data-inputmask="'mask': '9999'"> 
 
</div> 
 
</div>

+0

Я думаю, что код может быть сокращен до '$ (». Д '). Найти (' # precinctNum, #yearStartedLiving, #birthplace, #weight, #height, # доход '). val (' '); ' – mylee

+0

Спасибо за ваше предложение. Я обновил свой ответ. @mylee – Azim

+0

Это не сработало, но я сократил свой код благодаря вашему предложению. Я не знал, что это возможно! Еще раз спасибо. –

1

Вы можете вызвать событие, нажмите на поле вашего интереса :

 
$('input[name=resident][value="No"]').trigger('click'); 

$(function() { 
 
    $('input[name=resident]').click(function() { 
 
    if (this.id == "residentNo") { 
 
     $(".d").hide('slow'); 
 
    } else { 
 
     $(".d").show('slow'); 
 
    } 
 
    $('.d').find('#precinctNum, #yearStartedLiving').val(''); 
 
    }); 
 
    
 
    
 
    $('input[name=resident][value="No"]').trigger('click'); 
 
});
<script src="http://code.jquery.com/jquery-1.11.3.js"></script> 
 

 

 
<label class="radio-inline"><input type="radio" class = "res" id = "residentYes" name="resident" value="Yes" checked> Yes</label> 
 
<label class="radio-inline"><input type="radio" class = "res" id = "residentNo" name="resident" value="No" > No</label> 
 

 
<div class="d item form-group" > 
 
    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Precinct Number <span class="required">*</span> 
 
    </label> 
 
    <div class="col-md-6 col-sm-6 col-xs-12"> 
 
     <input id="precinctNum" class="form-control col-md-5 col-xs-12" name="precinctNum" data-validate-length-range="7" required="required" type="number"> 
 
    </div> 
 
</div> 
 

 
<div class="d item form-group"> 
 
    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Start of Residency (Year) <span class="required">*</span> 
 
    </label> 
 
    <div class="col-md-6 col-sm-6 col-xs-12"> 
 
     <input type="text" id="yearStartedLiving" name="yearStartedLiving" class="form-control col-md-5 col-xs-12" required="required" data-inputmask="'mask': '9999'"> 
 
    </div> 
 
</div>

+0

Большое вам спасибо за ваш ответ !!! Я уже решил проблему, но спасибо. Это послужит будущей ссылкой для меня и для других. Спасибо!!! –

+0

очень красивый от вашей стороны. спасибо – gaetanoM

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