1

我需要根据下拉列表中的选定值禁用或启用文本框。这是我正在使用的代码。

$(document).ready(function() {

if ($('#fragmentation').val() == 'NONE') { // if fragmentation is none
    alert("inside document ready");
    $('#fragmentSize').attr('disabled','disabled');
}

$('#fragmentation').change(function() {
    if ($(this).val() != 'NONE') {
        $('#fragmentSize').removeAttr('disabled');
    } else {
        $('#fragmentSize').val('');
        $('#fragmentSize').attr('disabled', 'disabled');
    }
});

该代码在除 IE 之外的所有浏览器中都能正常工作。我希望它适用于 IE8 及更高版本,但现在即使 IE9 也无法运行它。我放在那里的警告框出现了,因此代码在 IE 中到达那里,控制台或其他任何东西都没有错误。

我什至尝试使用这些:

$('#fragmentSize').prop('disabled','disabled');
$('#fragmentSize').prop('disabled',false);
$('#fragmentSize').prop('disabled','false');
$('#fragmentSize').attr('disabled',false);
$('#fragmentSize').attr('disabled','false');

所有这些都可以在其他浏览器中使用,但 IE 不会让步。

编辑:我不知道这是我的无知还是渲染禁用字段的可怕方式。最终的结论是它运行得非常好,只是我没有意识到 IE 中的禁用字段看起来就像一个普通字段。我已经习惯了在 Firefox 和 chrome 中查看禁用的字段,以至于我无法在 IE 中识别它。无论如何,根本没有问题,所以我不知道我应该保留这个问题还是删除它。对不起,浪费你们的时间了伙计们。

4

1 回答 1

0

以下代码正在工作:

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function() {

    if ($('#fragmentation').val() == 'NONE') { // if fragmentation is none
        alert("inside document ready");
        $('#fragmentSize').attr('disabled','disabled');
    }

    $('#fragmentation').change(function() {    
        if ($(this).val() != 'NONE') {
            console.log('NOT NONE');
            $('#fragmentSize').removeAttr('disabled');
        } else {
            console.log(' NONE');
            $('#fragmentSize').val('');
            $('#fragmentSize').attr('disabled', 'disabled');
        }
    });
    });
</script>

<select id="fragmentation">
<option value="NONE">1</option>
<option value="NONE">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input type="text" id="fragmentSize" value="HELLO">
</body>

代码之间有什么区别吗?你也可以发布HTML代码吗?

于 2013-07-04T11:40:28.680 回答