0

我有一个代码片段,在单击复选框时,我将隐藏并显示该字段及其标签。

在 IE7 中

虽然使用兄弟的 hide() 工作正常,但再次单击复选框时,siblings(label).show() 不起作用

代码

更新

    <div class="rightcolumn" id="otherlabeldiv">
                    <p class="clearboth">
                      <label for="othermakemodel"> Other Make & Model</label>
                      <input type="checkbox" name="othermakemodel" id="othermakemodel" value="1" class="chk"  />
                    </p>
                  </div>
<div class="rightcolumn" id="otherdiv" style="display:none;">
    <p class="clearboth">
                      <label for="cemake">* Make</label>
                      <select name="cemake" id="cemake" class="required">
                        <option value="Please Select">--Please Select--</option>
                        <option value="Other">Other</option>
                      </select>
                    </p>
                    <p class="clearboth">
                      <label for="cemodel">* Model</label>
                      <select name="cemodel" id="cemodel" class="required">
                        <option value="">--Please Select--</option>
                        <!-- <option value="Other">Other</option>-->
                      </select>
                    </p>
</div>

使用的 JQUERY

 function setUpAjaxCalls(){

        $('#cemake').live('change', function() {
        var val = $('#cemake :selected').text();
        val = val.replace("(",'&#040;');
        val = val.replace(")",'&#041;');
        val = encodeURIComponent(val);

        if (val == 'Other'){
        //alert(val);
                        $('#othermakemodel').hide();
                        $('#othermakemodel').siblings('label').hide();
                        $('#other_hide').val('1');
                        $('#otherdiv').show();
                        $('#cemodel').hide();
                        $('#cemodel').siblings('label').hide();
        }else{
            $('#other_hide').val('');
            $('#othermakemodel').show();
            $('#othermakemodel').siblings('label').show();
            $('#otherdiv').hide();
            $('#cemodel').show();
            $('#cemodel').siblings('label').show();
        }

    });
    }

$(document).ready(function(){
setUpAjaxCalls();
    $("#othermakemodel").click(function() {
            if($('#othermakemodel').is(':checked')){
             $('#cemake').hide();

                $('#cemake').siblings('label').hide();



               $('#cemodel').hide();

               $('#cemodel').siblings('label').hide();
            }else{
            $('#cemake').show();// THIS WORKs
                $('#cemake').siblings('label').show(); // THIS DOESNT WORK
            $('#cemodel').show();// THIS WORKs
                $('#cemodel').siblings('label').show();// THIS DOESNT WORK  
            }
    }); 
});

请帮我解决这个问题。

以上是更新的代码,您可以在其中看到“cemake”的值更改为“其他”hodes/显示具有相同兄弟概念的其他品牌/模型文本框,这不适用于复选框...

4

0 回答 0