道具(“残疾”,真实); AND attr('disabled','disabled')在chrome和firefox中不起作用

时间:2012-05-02 13:25:56

标签: jquery

我的asp.net mvc视图中有以下脚本: -

function disableform(id) {
    $('#' + id).prop("disabled", true);
}

但是上面的函数只会禁用使用Internet Explorer的元素,但是无法在chrome或firefox上工作,我也尝试编写attr('disabled', 'disabled')而不是.prop("disabled", true);,但它没有解决问题。

我的Jquery版本是1.7.1

那么可能是什么问题?

BR

4 个答案:

答案 0 :(得分:10)

禁用表单是错误的! IE只是搞乱了!你应该禁用字段。

function disableform(id) {
    $('#' + id+' :input').prop("disabled",true);
}​

DEMO

答案 1 :(得分:1)

我运行ASP.NET并遇到同样的问题。

我放弃了Jquery,转而使用纯Javascript,效果很好。

    var element = document.getElementById('MyID');
    element.setAttribute('disabled', 'disabled');

编辑:要使其正常工作,您必须使用element.removeAttribute('disabled');何时启用该元素。否则它仍然是禁用的。

答案 2 :(得分:0)

我无法让它在chrome中删除属性,所以我只是添加了禁用的类,它不是真正的禁用但它适用于IE和Chrome

$('#search').on('click', function (event) {
    $('#search').text("Searching");
    $('#search').addClass("disabled");
    return true;
});

答案 3 :(得分:-1)

function SwapA(SwapActivation)  {
for (i=1;i==5;i++) {
if (i != SwapActivation) {
    // All Browsers supported .....
    $("input[name=pg1"+i+"]").prop('disabled', true);
    $("input[name=pg2"+i+"]").prop('disabled', true);
}
else {
    //   JQuery 1.10+ _&&_  Opera 12  and All other browsers...  !!!!
    if ( $("input[name=pg1"+i+"]").prop('disabled') === true)
        $("input[name=pg1"+i+"]").prop('disabled', false);
    if ( $("input[name=pg2"+i+"]").prop('disabled') === true)
        $("input[name=pg2"+i+"]").prop('disabled', false);

    //   works =  JQuery 1.10+ _&&_  Opera 12.16 + Firefox 24;
    //   do not work "Opera 17.0.1241.53", "Chrome" v.30.0.1599.101 m
    $("input[name=pg1"+i+"]").removeProp('disabled');
    $("input[name=pg2"+i+"]").removeProp('disabled');
    //   .removeProp() is affects negative

    //   works possible = JQuery 1.4.x  :
    $("input").attr('name','pg1'+i)[0].removeProp('disabled');
    $("input").attr('name','pg2'+i)[0].removeProp('disabled');
}}}

有用吗? :)