如果你不介意,一点帮助。
基本上,我有3个收音机盒和一个div。选择第3个单选框时,div应该可见。但是,可以在页面加载时检查单选框,因此如果选中第3个框,则需要显示div,否则它应该最初隐藏,但如果稍后检查第3个框,则变为可见。
HTML:
<input type="radio" name="image_location" value="featured_image" />
<input type="radio" name="image_location" value="all_images" />
<input type="radio" name="image_location" value="custom_field" />
<div id="image_location_custom_field">
** Content **
</div>
我到目前为止使用JavaScript:
jQuery('input[name=image_location]').hide();
jQuery('input[name=image_location]').change(function() {
var selected = jQuery(this).val();
if(selected == 'custom_field'){
jQuery('#caption_custom_field').show();
} else {
jQuery('#caption_custom_field').hide();
}
});
非常感谢
答案 0 :(得分:4)
检查是否检查了radiobutton是否显示div,你也可以使用css来隐藏div
<input type="radio" name="image_location" value="featured_image" />
<input type="radio" name="image_location" value="all_images" />
<input type="radio" name="image_location" value="custom_field" />
<div style="display:none" id="image_location_custom_field">
** Content **
</div>
//on dom ready
if (jQuery('input[value=custom_field]:checked').length > 0){
jQuery('#image_location_custom_field').show()
}
else {
jQuery('#image_location_custom_field').hide();
}
jQuery('input[name=image_location]').change(function() {
var selected = jQuery(this).val();console.log(selected);
if(selected == 'custom_field'){
jQuery('#image_location_custom_field').show();
} else {
jQuery('#image_location_custom_field').hide();
}
});
答案 1 :(得分:1)
在初始页面加载时使用CSS隐藏<div>
- http://jsfiddle.net/yh5ct/
$("input[type=radio]").on("click", function() {
if ( $(this).val() == "custom_field" ) {
$("div").show();
} else {
$("div").hide();
}
});
答案 2 :(得分:0)
我会尝试这样的事情:
jQuery.noConflict();
(function($) {
$(document).ready(function() {
$(':radio[name="image_location"]').on('change', function() {
if ($(this).val() == 'custom_field') {
$('#caption_custom_field').show();
} else {
$('#caption_custom_field').hide();
}
}).last().trigger('change'); // This triggers the event for the last element.
});
})(jQuery);