19

これは非常に不可解で、ここにどのコードを投稿すればよいかさえわかりません。しかし、問題は非常に単純です。いくつかの価格計算を行っている 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」が表示されますが、

4

2 に答える 2

42

ID「Discount」が一意であることを確認してください。

1 つのページに複数のフォームを配置する場合、「名前」はそのままにしますが、常に「フォーム」要素の ID を各「値」の ID の前に付けます。

頭痛の多くを救います。

于 2012-05-31T08:57:48.653 に答える