2012-08-02 16 views
12

Sto cercando di trovare una soluzione alternativa per i browser che non interpretano l'attributo segnaposto per gli elementi di input. Ho questo semplice script jQuery ma genera un errorejQuery: Javascript genera Errore "L'operazione non è sicura" quando si imposta il valore

SecurityError: "The operation is insecure. 
this.value = val;" 

del mio script Qui:

$('document').ready(function(){ 
     $('input').each(function() { 
      if ($(this).val() === '' || $(this).val() === undefined) { 
       $(this).val($(this).attr('placeholder')); 
      } 
     }); 
}); 

Chiunque tutte le idee che cosa posso fare? O cosa sto facendo di sbagliato? O cosa significa questo errore? Accade in Firefox, non l'ha ancora provato su altri Browser.

+4

Eh? Non ho mai visto quell'errore Quale browser l'ha lanciato? – Utkanos

+2

FWIW '$ (this) .val()' non restituirà mai 'undefined'. –

+1

Hai qualche estensione del browser o plug-in in esecuzione che potrebbe impedire a Javascript di modificare i valori del modulo? –

risposta

26

Ho appena risolto un problema simile nel mio progetto. Si è scoperto che stavo cercando di impostare un valore di un input <input type="file" ...>. Sembra che tu stia affrontando lo stesso problema, perché stai selezionando tutti gli input di un documento indipendentemente dal loro tipo.

Se è installato FireBug, provare a cercare l'input che causa questo errore inserendo un comando log prima di provare a modificare il valore dell'input.

$('document').ready(function(){ 
     $('input').each(function() { 
      if ($(this).val() === '' || $(this).val() === undefined) { 

       // Log goes here 
       window.console.log(
        'There is an input without a value!', 
        this); 

       $(this).val($(this).attr('placeholder')); 
      } 
     }); 
}); 
+4

Brillante. Questo era effettivamente il problema. Grazie! –

+1

È impossibile impostare l'input del file btw per motivi di sicurezza – grasshopper

0

Avevo un avviso non sicuro in combinazione con la funzione di antoher. Il motivo era semplicemente che una funzione di libreria veniva chiamata con un array dato come parametro, ma si aspettava un elemento (dom). Il risultato è stato previsto, ma sono sicuro che questo non sarà in nessun caso. Quindi controlla se i tipi delle tue variabili sono quelli che tu (o l'altro lato) vuoi che sia.

Problemi correlati