2013-07-06 2 views
0

mvc3 asp.net을 사용하고 있으며 프로젝트에 뷰가 있습니다. 보기 중 하나에서, 나는 baseprice, 등등과 같은 필드가 있습니다. 그리고 또 다른 총 필드가 있습니다. 이 편집기 필드 값을 동적으로 추가하고 결과를 다른 Editorfield에 표시하는 것이 가능합니까 (AJAX를 통해).이 편집기 필드는 읽기 전용으로 갖고 싶습니다.cshtml - mvc3에서 편집기의 값을 동적으로 추가하십시오.

cshtml 코드 :이 기능은 흐림에 호출되지 점점 않습니다,

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

을하지만 : 이제

<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 호출, 나는 이런 식으로 뭔가를 시도하고있다 주차장이나 편의 시설 중 하나를 선택하십시오.

내가 뭔가를 놓친 것입니까? 도와주세요. . (

$ :

답변

0

겠어요 .. 나는

$ ('#의 AmenitiesPrice') (블러 기능()

하고 값을 얻을 수를 아약스 코드를 작성해야 '입력 #의 Baseprice'). 발 ...

0
  1. 나는 당신의 HTML에 #carpark 표시되지 않습니다.
  2. 입력 값을 얻기 위해 당신이 paranthes를 추가해야 가 입력 값을 설정하려면 다음과 같은 매개 변수로 전달 값이 필요합니다.

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

  3. language="javascript"을 스크립트 태그에 추가 할 필요가 없습니다.
  4. 새로운 {@id = "Amenity"} 매개 변수가 요소의 ID를 Amenity로 설정하지 않았기 때문에 instent가 인 것을 사용해보세요. 여전히 #AmenitiesPrice입니다.

당신이 EditorFor의 this 과부하 사용하고

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

전화 :

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

그래서 new {@id = "Amenity"} AmenitiesPrice 유형 EditorTemplate를 나타내는 veiw에 전달됩니다 additionalViewData입니다. 당신은 당신이 htmlAttributes로 마지막 매개 변수를 전달하는

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

를 호출하므로 입력의 ID가 #Amenity로 변경됩니다

.

대체 결정은 #AmenititsPrice에 선택을 변경하는 것입니다 :

$('#AmenititsPrice').blur(function() { 
      alert('Hi'); 
     }); 
관련 문제