0

私は mvc3 asp.net を使用しており、プロジェクトにビューがあります。ビューの 1 つに、baseprice などのフィールドがあります。また、別の合計フィールドもあります。これらのエディターフィールド値を動的に追加し、結果を別のエディターフィールドに表示することは (AJAX を介して) 実行可能ですか (これは読み取り専用にしたい)。

cshtml コード:

<div class="editor-field">
    @Html.EditorFor(model => model.Baseprice, new { @id = "Baseprice" })
    @Html.ValidationMessageFor(model => model.Baseprice)
</div>
<div class="editor-label">
    @Html.LabelFor(model => model.AmenitiesPrice)
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.AmenitiesPrice, new { @id = "Amenity" })
    @Html.ValidationMessageFor(model => model.AmenitiesPrice)
</div>

<div class="editor-field">
    @Html.EditorFor(model => model.BookedAmount, new { @readonly = "readonly", @id = "BookedAmt" })
    <span runat="server" style="color:Red;" visible="false"> *</span>
    @Html.ValidationMessageFor(model => model.BookedAmount)
</div>

今、cshtml内のAjax呼び出しで、私は次のようなことをしようとしています:

<script type="text/javascript" language="javascript">
    $(function () {
        $('#Amenity').blur(function () {
            alert('Hi');
        });
        $('#carpark').blur(function () {
            $('#Baseprice').val = $('#carpark').val + $('#Amenity').val; 
        });

ただし、この関数は、駐車場またはアメニティのぼかしに対して呼び出されることはありません..

何か不足していますか?助けてください。

4

2 に答える 2

0
  1. html に #carpark がありません。
  2. 入力の値を取得するには、括弧を追加する必要があり、値を入力に設定するには、次のように値をパラメーターとして渡す必要があります。

    $('#Baseprice').val($('#carpark').val() + $('#Amenity').val());

  3. language="javascript"script タグに追加する必要はありません。
  4. 新しい { @id = "Amenity" } パラメータは要素の ID を Amenity として設定しないため、@Html.TextBoxForinsted ofを使用してみてください。#AmenitiesPrice のままです。@Html.EditorFor

電話するとき

   @Html.EditorFor(model => model.AmenitiesPrice, new { @id = "Amenity" })

EditorFor のこのオーバーロードを使用しています。

  public static MvcHtmlString EditorFor<TModel, TValue>(
    this HtmlHelper<TModel> html,
    Expression<Func<TModel, TValue>> expression,
    Object additionalViewData
)

new {@id = "Amenity"}veiw に渡される additionalViewData もそうです。

電話すると

 @Html.TextBoxFor(model => model.AmenitiesPrice, new { @id = "Amenity" })

最後のパラメーターを htmlAttributes として渡しているため、入力の id は #Amenity に変更されます。

別の決定は、セレクターを #AmenititsPrice に変更することです。

$('#AmenititsPrice').blur(function () {
            alert('Hi');
        });
于 2013-07-06T09:05:28.480 に答える
0

わかった.. ajaxコードを次のように書くべきだった

$('#AmenitiesPrice').blur(関数 ()

そして値を取得するには:

$('input#Baseprice').val...

于 2013-07-06T08:55:10.800 に答える