更改子按钮的属性

时间:2014-10-21 08:45:09

标签: php jquery

我必须选择框。还有两个按钮。按钮被禁用。当选择框更改时,将启用按钮。

<select class="form-control" id="target_category" name="target_category">
                    <?php $categories = $categoryObj->deepestCategories(); ?>
                    <option value="-1">Kategori Seç</option>
                    <option value="0">Kategori Yok</option>
                    <?php
                        foreach($categories as $category){
                            echo '<option value="'.$category['id'].'">(ID: '.$category['id'].') '.$category['category'].'</option>';
                        }
                    ?>
                </select>
                <span class="input-group-btn">
                    <button disabled="disabled" name="move_category_button" id="move_category_button" class="btn btn-default" type="submit"><span class="glyphicon glyphicon-move"></span> Taşı</button>
                </span>  

<select class="form-control" id="target_location" name="target_location">
                <?php $locations = array('Türkiye','Çin','Hindistan','Nepal','Pakistan'); ?>
                <option value="-1">Menşei Seç</option>
                <?php
                    foreach($locations as $location){
                        echo '<option value="'.$location.'">'.$location.'</option>';
                    }
                ?>
            </select>
            <span class="input-group-btn">
                <button disabled="disabled" name="move_location_button" id="move_location_button" class="btn btn-default" type="submit"><span class="glyphicon glyphicon-move"></span> Taşı</button>
            </span> 

对于短代码编写,我决定将两个jquery脚本合并为一个语句。

但我无法处理两者。

这是我的代码。

$('#target_location, #target_category').change(function(){
            val = $(this).val();

            if (val != -1){
                $(this).children('button').removeAttr('disabled');
            } else {
                $(this).children('button').attr('disabled','disabled');
            }
        })

2 个答案:

答案 0 :(得分:0)

你的按钮不是你选择的孩子,他们是兄弟姐妹的孩子。

使用.next()抓住兄弟按钮容器,然后.children()获取按钮。此外,使用disabled属性作为布尔值比添加和删除属性更好。

$('#target_location, #target_category').change(function(){
    var val = $(this).val();

    if (val != -1){
        $(this).next('input-group-btn').children('button').prop('disabled', false);
    } else {
        $(this).next('input-group-btn').children('button').prop('disabled', true);
    }
});

答案 1 :(得分:0)

按钮不是选择框的子项,您需要选择下一个兄弟。

$('#target_location, #target_category').change(function(){
    val = $(this).val();

    if (val != -1){
        $(this).next('span').find('button').removeAttr('disabled');
    } else {
        $(this).next('span').find('button').attr('disabled','disabled');
    }
})