这很令人困惑,我甚至不确定应该在这里发布哪些代码。然而,问题非常简单。我在JQuery模态对话框中有一个表单,在其中进行一些价格计算。其中之一是折扣字段。展示为:
<div class="editor-label">
@Html.LabelFor(model => model.Discount)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Discount, new { size = 10 })
</div>
我在Firebug调试器的DOM选项卡中看到,这个字段的值是20。当然,在表单上也是可见的。但调用:
$('#Discount').val()
返回一个空字符串。 而且只有这个字段有问题。调用其他字段的val()会返回正确的值。即使单击提交并调试所提交的模型的 MVC 操作,我也看到 Discount 的值存在。只有 JQuery 函数返回一个空字符串,而且仅限于此字段。
我知道这是一个有点抽象的问题,但是否有人有过类似的经历呢?
谢谢
生成的 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>
尽管该元素在Firebug的DOM标签中显示值为“20”
.text()
,因为Html.EditorFor
会清除掉<textarea>
,而且据我所知,一些旧版本的jQuery无法使用.val()
获取textarea的值。 - Richard Neil Ilagan