Jquery基于单选按钮值进行选择(Jquery select based on radio button value)

编程入门 行业动态 更新时间:2024-10-27 19:30:15
Jquery基于单选按钮值进行选择(Jquery select based on radio button value)

我已经查看了大约10个类似的问题,但没有找到解决我的情况的方法。 我不确定我的问题是在选择器中,我正在测试“if”的方式,还是我试图显示/隐藏字段的方式。

如果单选按钮名称=“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>

I've looked through about 10 similar questions, but haven't found a solution to my situation. I'm not sure if my problem is in the selector, the way I'm testing "if", or the way I'm trying to show/hide the field.

I want to hide the input where name="wpbpp_settings[slideshowSpeed]" if the value of the radio button name="wpbpp_settings[slideshow]"is "false"

Here's my form:

<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>

and my 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>

_______ EDIT ______________

So now I've got in closer. My problem is that my "if" statement always evaluates to "true".

Here's the revised 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>

最满意答案

尝试将jQuery('input[name="wpbpp_settings[slideshow]"]').val()到控制台中。 看看你是否做了正确的比较。 你的方法应该是:

选择name="wpbpp_settings[slideshow]"的单选按钮组 找到该组的选中按钮 找到它的价值

比较并做任何你想做的事

var selectedButton=$("input[name='wpbpp_settings[slideshow]']"]:checked"); var value = selectedButton.val();

或者甚至如此

var selectedValue = $("input[name='wpbpp_settings[slideshow]']"]:checked").val();

查看您在selectedValue获得的内容,然后进行进一步比较。

Try logging jQuery('input[name="wpbpp_settings[slideshow]"]').val() into the console. and see if you are making the right comparison. Your approach should be:

Select the radio button group with name="wpbpp_settings[slideshow]" Find the checked button for that group Find its value

Compare and do whatever you want to

var selectedButton=$("input[name='wpbpp_settings[slideshow]']"]:checked"); var value = selectedButton.val();

or even as,

var selectedValue = $("input[name='wpbpp_settings[slideshow]']"]:checked").val();

See what you get in selectedValue and then make further comparisons.

更多推荐

wpbpp_settings,php,电脑培训,计算机培训,IT培训"/> <meta name="descriptio

本文发布于:2023-08-06 10:57:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1446732.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:单选   按钮   Jquery   select   button

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!