Eseguo serializzazione su un modulo, in cui uno dei campi è nascosto - ed è un campo molto importante, che dovrebbe essere pubblicato. C'è un modo per serializzare facilmente attraverso jQuery o dovrei scrivere la mia funzione?serialize non include campi nascosti
risposta
Serializefa includono tutti abilitati input
elementi con un attributo name
.
perché jquery usa l'attributo name per serializzare un form, invece di usare l'attributo id? – frabiacca
@frabiacca Perché l'attributo 'name' è l'identificatore per i dati POST http://www.w3schools.com/tags/att_input_name.asp –
Ho problemi con la casella di controllo che hanno visualizzazione stile/css: nessuno. Non vengono raccolti. –
Forse la combinazione dei due in un unico selettore funzionerebbe?
$(":input,:hidden").serialize();
modifica: ho appena provato quanto sopra e ha funzionato. ma, $ ("form"). serialize(); dovrebbe prendere automaticamente tutti gli input come altri hanno menzionato.
Lo fa solo se ha un attributo name che finisce per essere la chiave dell'oggetto. –
Ecco una variazione strana su questo problema. I campi nascosti hanno nomi.
alert($("#myForm").serialize())
Apre correttamente una finestra con tutti i campi nascosti. Ma
$.post('myposts.php', $("#myForm").serialize(), function(data) {
$('#myResult').html(data);
});
Non ha i campi nascosti. Quando lo script php fa print_r($_POST)
il nascosto e caselle di controllo sono Mising
Hai mai capito perché questo sta accadendo? – bytebender
ciò accade perché il tuo input è esterno (usa inspect elemento per vedere) l'attributo form, prima di postare puoi '$ ('your hidden html'). AppendTo ('# myForm');' –
si dovrebbe aggiungere il nome a tutti gli elementi per la funzione Serialize per funzionare correttamente
appena incontrato questo problema me stesso, e fatto trovare una soluzione.
Il problema ha a che fare con il modo in cui JQuery raccoglie informazioni html nascoste. Non prenderà in considerazione il TESTO di un campo nascosto come valore, è necessario utilizzare la proprietà value =.
per impostarlo in jQuery utilizzare $(field).val(yourvalue);
ho avuto questo problema pure. Per abitudine chiudo i miei campi di input con />. Ho scoperto che l'input nascosto non funziona quando viene chiuso in questo modo.
<input type="hidden" name="someName" value="someValue" />
non funziona.
<input type="hidden" name="someName" value="someValue" >
funziona.
'serialize' dovrebbe includere campi nascosti. Possiamo vedere il markup e lo script? – VoteyDisciple
Gli unici campi che posso pensare che non dovrebbero essere inclusi sarebbero campi disabilitati. – Powerlord
Serialize include i campi nascosti, ma non quelli disabilitati. ++ su voler vedere il markup e lo script. – 48klocs