2012-05-31 14 views
11

Das ist sehr rätselhaft und ich bin nicht einmal sicher, welchen Code ich hier posten sollte. Das Problem ist jedoch sehr einfach. Ich habe ein Formular in einem JQuery Modaldialog, wo ich einige Preisberechnungen mache. Unter anderem habe ich ein Feld Rabatt. Präsentiert als:JQuery val() gibt leere Zeichenfolge zurück

<div class="editor-label"> 
    @Html.LabelFor(model => model.Discount) 
</div> 
<div class="editor-field"> 
    @Html.EditorFor(model => model.Discount, new { size = 10 }) 
</div> 

ich in dem Firebug-Debugger sehe, DOM Registerkarte, dass dieses Feld einen Wert von 20 hat, und es ist sichtbar auf der Form, natürlich. Aber rufen:

$('#Discount').val() 

gibt eine leere Zeichenfolge zurück. Und das ist das einzige Feld, das dieses Problem hat. Der Aufruf von val() für andere Felder liefert korrekte Werte. Auch wenn ich auf "Senden" und "Debuggen" der MVC-Aktion für das eingereichte Modell klicke, sehe ich, dass der Wert für "Rabatt" vorhanden ist. Es ist nur die JQuery-Funktion, die eine leere Zeichenfolge und nur für dieses Feld zurückgibt.

Ich weiß, das ist ein bisschen eine abstrakte Frage, aber hat jemand jemals eine solche Erfahrung gemacht?

Danke

generiert 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> 

Während DOM Registerkarte in Firebug für dieses Element Wert zeigt: "20"

+0

Können Sie bitte die generierte Ausgabe (HTML) posten? –

+0

Sie könnten auch '.text()' versuchen, da 'Html.EditorFor' eine'