Questo è molto sconcertante e non sono nemmeno sicuro di quale codice dovrei postare qui. Eppure il problema è molto semplice. Ho un modulo in una finestra di dialogo modale JQuery dove sto facendo alcuni calcoli di prezzo. Tra l'altro, ho uno sconto sul campo. Presentato come:JQuery val() restituisce la stringa vuota
<div class="editor-label">
@Html.LabelFor(model => model.Discount)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Discount, new { size = 10 })
</div>
vedo nel debugger Firebug, scheda DOM, che questo campo ha un valore di 20. Ed è visibile nel modulo, naturalmente. Ma chiamando:
$('#Discount').val()
restituisce una stringa vuota. E questo è l'unico campo che presenta questo problema. Chiamare val() per altri campi restituisce valori corretti. Anche facendo clic su Invia e eseguendo il debug dell'azione MVC per il modello inviato, vedo che il valore per Sconto è lì. È solo la funzione JQuery che restituisce una stringa vuota e solo per questo campo.
So che questa è una domanda astratta, ma qualcuno ha mai avuto un'esperienza simile?
Grazie
HTML generato:
<div class="editor-label">
<label for="Discount">Popust (%)</label>
</div>
<div class="editor-field">
<input id="Discount" class="text-box single-line valid" type="text" value="0" name="Discount" data-val-range-min="0" data-val-range-max="100" data-val-range="Vredonst mora biti izmedju 0 i 100" data-val-number="Polje Popust (%) mora biti broj" data-val="true" size="10">
</div>
Mentre scheda DOM in Firebug per questo elemento visualizza il valore: "20"
Puoi pubblicare l'output generato (HTML)? –
Si potrebbe anche voler provare '.text()' dato che 'Html.EditorFor' elimina un'
text() restituisce una stringa vuota per tutti i campi di input nel modulo. – elector