2012-05-31 21 views
11

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"

+0

Czy możesz wysłać wygenerowany wynik (HTML)? –

+0

Możesz również wypróbować '.text()', ponieważ 'Html.EditorFor' wypluwa'