IE不会使用jquery动态禁用/启用文本框,而其他人会这样做

时间:2013-07-04 11:07:42

标签: jquery internet-explorer

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

$(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中的禁用字段我无法在IE中识别它的chrome。无论如何,根本没有问题,所以我不知道我是应该保留问题还是删除它。很抱歉浪费你的时间。

1 个答案:

答案 0 :(得分: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代码吗?