2016-01-16 62 views
0

我有一个现有的jQuery代码,如果单选按钮被选中,它将隐藏div。但是,当页面加载..如果这个单选按钮已被选中,我希望能够隐藏div而不点击任何内容。如何在页面加载时检查单选按钮时隐藏div?

<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

注意:在这个例子中,我已经设置residentNochecked演示它

+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

我觉得代码可以缩短到 '$(” d ')。找到(' #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

相关问题