我正在尝试获取特定的表单字段,以显示是否在页面加载时选择了特定的单选按钮,或者是否单击了它。我已经搞乱了几个小时,这是我得到的最接近的。现在它正在运行整个showForm函数,无论如何。我使用input[type='radio']
切换了$(this)
,但$(this)
没有任何意义,因此显然无法正常工作(here's the JS fiddle for that.该表单在点击时可以使用,但不会显示表单页面加载)。我还从showForm
函数中取出了所有这些,并试图trigger.click()
像这样
if ($("input[type='radio']").is(':checked')){
$(this).trigger('click');
}
但这也不起作用。
这是JS:
$(document).ready(function() {
$(".currentForm, .address, .trust, .individual").hide();
if ($("input[type='radio']").is(':checked')){
showForm();
}
$("input[type='radio']").click(showForm);
function showForm(){
if($("input[type='radio']").attr('name') == 'enterAddress' && $(this).attr('value') == 'true') {
$('.address').slideDown( "slow", function() {});
}
else{
$('.address').slideUp( "slow", function() {});
}
//Individual
if($("input[type='radio']").attr('id') == 'nameType1') {
$('.currentForm, .address, .trust, .business').hide();
$('.individual, .currentForm').slideDown( "slow", function() {});
$('#enterAddress1').attr('checked', false);
$('#enterAddress2').attr('checked', true);
}
//Trust
else if($("input[type='radio']").attr('id') == 'nameType2'){
$('.currentForm, .address, .individual, .business').hide();
$('.trust, .currentForm').slideDown( "slow", function() {});
$('#enterAddress1').attr('checked', false);
$('#enterAddress2').attr('checked', true);
}
//Business
else if($("input[type='radio']").attr('id') == 'nameType3'){
$('.currentForm, .address, .individual, .trust').hide();
$('.business, .currentForm').slideDown( "slow", function() {});
$('#enterAddress1').attr('checked', false);
$('#enterAddress2').attr('checked', true);
}
}// end showForm
});
答案 0 :(得分:0)
请改用以下内容:
$("input[type='radio']").on('change', showForm).filter(':checked').change();
//assuming you have just one radio button
//if not then make ':checked' be specific to that particular radio button.
你不需要这个部分:
if ($("input[type='radio']").is(':checked')){
showForm();
}