To jest bardzo zagadkowe i nie jestem nawet pewien, jaki kod powinienem tu zamieścić. Problem jest jednak bardzo prosty. Mam formularz w modalnym oknie dialogowym JQuery, w którym robię niektóre obliczenia ceny. Między innymi mam pole Rabat. Przedstawiony jako:JQuery val() zwraca pusty ciąg znaków
<div class="editor-label">
@Html.LabelFor(model => model.Discount)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Discount, new { size = 10 })
</div>
widzę w debuggera Firebug, karcie DOM, że pole to ma wartość 20. I to jest widoczne na formularzu, oczywiście. Ale wywołanie:
$('#Discount').val()
zwraca pusty ciąg znaków. I to jest jedyne pole, które ma ten problem. Wywołanie val() dla innych pól zwraca poprawne wartości. Nawet kliknięcie przycisku przesyłania i debugowania działania MVC dla przesłanego modelu powoduje, że istnieje wartość dla rabatu. Jest to po prostu funkcja JQuery, która zwraca pusty łańcuch i tylko dla tego pola.
Wiem, że to trochę abstrakcyjne pytanie, ale czy ktoś miał takie doświadczenie?
Dziękuję
Generated HTML:
<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>
Chociaż zakładka DOM w Firebug dla tego elementu pokazuje wartość: "20"
Czy możesz wysłać wygenerowany wynik (HTML)? –
Możesz również wypróbować '.text()', ponieważ 'Html.EditorFor' wypluwa'
text() zwraca pusty łańcuch dla wszystkich pól wejściowych w formularzu. – elector