jQuery显示和隐藏依赖于C.I下拉列表中的值

时间:2016-01-28 14:27:54

标签: javascript jquery codeigniter

在单个视图中工作,我有以下C.I form_dropdown:

<?php
$international_options = array(
    '0' => lang('No'),
    '1' => lang('Yes')
);
echo form_dropdown('International', $international_options, set_value('International', isset($stockists->International) ? $stockists->International : 0), 'class="span4 selectpicker international"');
?>

我有以下文件up-loader:

<label class="flagupload" for="filename">Upload an image flag</label>
<input class='flagupload' type='file' name='filename' size='20' />

在同一视图(视图底部),我有以下脚本:

<script>
    $(document).ready(function() {
        $("#select.international").change(function() {
            if ($('#select option:selected').text() == "yes") {
                $('.flagupload').show();
            }
            else if ($('#select option:selected').text() == "no") {
                $('.flagupload').hide();
            }
        });
    });
</script>

如果下拉列表设置为no,则会尝试隐藏flagupload的实例,如果下拉列表设置为“yes”,则会隐藏该类。

这当前不起作用,但也没有错误。有谁能发现这个问题?

下拉列表的HTML标记如下:

<select name="International" class="span4 selectpicker international">
<option value="0">No</option>
<option value="1" selected="selected">Yes</option>
</select>

2 个答案:

答案 0 :(得分:1)

<script>
    $(document).ready(function() {
        $("select.international").change(function() {
            if ($('select option:selected').text() == "yes") {
                $('.flagupload').show();
            }
            else if ($('select option:selected').text() == "no") {
                $('.flagupload').hide();
            }
        });
    });
</script>

我认为它应该像上面一样。

更改#select以选择。

答案 1 :(得分:1)

使用以下短代码。

<script>
   $(document).ready(function() {
       $("select.international").change(function() {
           $('.flagupload').addClass('hide'); 
           if ($(this).val() == "1") {
               $('.flagupload').removeClass('hide');
           }
       });
   });
</script>
<style>
   .hide
   {
        display:none ;
   }
</style>
<select name="International" class="span4 selectpicker international">
   <option value="0">No</option>
   <option value="1" selected="selected">Yes</option>
</select>
<label class="flagupload hide" for="filename">Upload an image flag</label>
<input class="flagupload hide" type='file' name='filename' size='20' />