2012-05-31 31 views
11

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"

+0

Puoi pubblicare l'output generato (HTML)? –

+0

Si potrebbe anche voler provare '.text()' dato che 'Html.EditorFor' elimina un'