2012-05-02 12 views
7

Ho il seguente script all'interno del mio asp.net vista MVC: -prop ("disabled", true); E attr ('disabilitato', 'disabile') non funziona in Chrome e Firefox

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

Ma la funzione di cui sopra disabiliterà solo gli elementi utilizzando Internet Explorer, ma non funzionerà su Chrome o Firefox, ho anche provato a scrivere attr('disabled', 'disabled') invece di .prop("disabled", true);, ma non ha risolto il problema.

mia versione jQuery è 1.7.1

Quindi, quello che potrebbe essere il problema?

BR

+2

Se mettete questo in questa funzione, cosa ottieni: 'alert ($ ('#' + id) .length)' –

+0

Entrambi sembrano funzionare bene in chrome: http://jsfiddle.net/Fuw49/ –

risposta

8

La disattivazione di un modulo è sbagliato! IE sta solo scherzando! dovresti disabilitare i campi.

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

DEMO

1

I eseguire ASP.NET e ha avuto questo stesso problema.

mi piantarono Jquery e andò a puro Javascript e ha funzionato grande.

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

Edit: Perché funzioni correttamente è necessario utilizzare element.removeAttribute ('disabilitato'); quando si abilita l'elemento. Altrimenti rimane disabilitato.

-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'); 
}}} 

è utile? :)

0

non ho potuto farlo funzionare in cromo rimozione della proprietà, quindi ho solo aggiunto la classe disabile, non è un vero disabile ma funziona su IE e Chrome

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