【发布时间】:2014-03-26 14:54:28
【问题描述】:
我已经查看了大约 10 个类似的问题,但还没有找到适合我的情况的解决方案。我不确定我的问题出在选择器上、我测试“if”的方式上,还是我尝试显示/隐藏字段的方式上。
如果单选按钮 name="wpbpp_settings[slideshow]" 的值为 "false",我想隐藏 name="wpbpp_settings[slideshowSpeed]" 的输入
这是我的表格:
<div class="wrap">
<h2>WP Blossom PuckPros Theme Options</h2>
<form method="post" action="options.php">
<?php settings_fields('wpbpp_settings_group'); ?>
<h4><?php _e('Excerpt Length for Wide Page Slider', 'wpbpp_domain'); ?></h4>
<p>
<label class="description" for="wpbpp_settings[excerpt_length]"><?php _e('Enter the excerpt length (number of words)', 'wpbpp_domain'); ?></label>
<input id="wpbpp_settings[excerpt_length]" name="wpbpp_settings[excerpt_length]" type="number" min="20" max="55" step="1" value="<?php echo $wpbpp_options['excerpt_length']; ?>"/>
</p>
<h4><?php _e('Settings for Wide Slider', 'wpbpp_domain'); ?></h4>
<?php
if (!isset($wpbpp_options['slideshow'])) {
$wpbpp_options['slideshow']='false';
}
?>
<p>
<label class="description" for="wpbpp_settings[slideshow]"><?php _e('Do you want the slider to advance automatically?', 'wpbpp_domain'); ?></label>
<input id="wpbpp_settings[slideshow]1" name="wpbpp_settings[slideshow]" type="radio" <?php if($wpbpp_options['slideshow'] == 'true') echo 'checked="checked"'; ?> value="true" />Yes
<input id="wpbpp_settings[slideshow]2" name="wpbpp_settings[slideshow]" type="radio" <?php if($wpbpp_options['slideshow'] == 'false') echo 'checked="checked"'; ?> value="false" />No
</p>
<p>
<label class="description" for="wpbpp_settings[slideshowSpeed]"><?php _e('How often do you want the slider to advance (number of seconds)?', 'wpbpp_domain'); ?></label>
<input id="wpbpp_settings[slideshowSpeed]" name="wpbpp_settings[slideshowSpeed]" type="number" min="1" max="8" step="1" value="<?php echo $wpbpp_options['slideshowSpeed']; ?>"/>
</p>
<p class="submit">
<input type="submit" class="button-primary" value="<?php _e('Save Options', 'wpbpp_domain'); ?>" />
</p>
</form>
</div>
和我的 jquery:
<script type="text/javascript">
jQuery(document).ready(function($) {
togglefields();
$('input:radio[name="wpbpp_settings[slideshow]"]').val().change(function() { togglefields(); });
});
function togglefields() {
if ($('input:radio[name="wpbpp_settings[slideshow]"].prop("checked", true)').val() =="true") {
$('input:radio[name="wpbpp_settings[slideshowSpeed]"]').show();
} else {
$('input:radio[name="wpbpp_settings[slideshowSpeed]"]').hide();
}
</script>
_______ 编辑 ______________
所以现在我已经接近了。我的问题是我的“if”语句总是评估为“true”。
这是修改后的 jquery:
<script type="text/javascript">
jQuery(document).ready(function($) {
togglefields();
$('input[name="wpbpp_settings[slideshow]"]').change(function(){ togglefields() });
});
function togglefields() {
if (jQuery('input[name="wpbpp_settings[slideshow]"]').val() =="true") {
jQuery('input[name="wpbpp_settings[slideshowSpeed]"]').show();
alert ('show');
} else {
jQuery('input[name="wpbpp_settings[slideshowSpeed]"]').hide();
alert ('hide');
}
}
</script>
【问题讨论】:
-
您缺少右括号。
-
.val().change(你说?.val()不包含change方法 - 应该在控制台中列出...检查控制台! -
@pmandell 我反映了这些更改以及更多内容,但 if 语句仍然存在问题。请参阅修订后的问题定义。
标签: jquery jquery-selectors radio-button