EditorFor来自另外两个字段的默认值(ASP.NET MVC)

时间:2016-04-08 10:42:40

标签: asp.net-mvc multiplication editorfor

我有问题需要像这张图片一样解决(click to show image) 下面。我的观点:

@model CodeSimplified.Models.User
@{
  ViewBag.Title = "User";
}

<h2>User</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
  @Html.ValidationSummary(true)
  <fieldset>

      <legend>User</legend>

      <div class="editor-label">
          @Html.LabelFor(model => model.Value1)
      </div>
      <div class="editor-field">
          @Html.EditorFor(model => model.Value1)
          @Html.ValidationMessageFor(model => model.Value1)
      </div>

      <div class="editor-label">
          @Html.LabelFor(model => model.Value2)
      </div>
      <div class="editor-field">
          @Html.EditorFor(model => model.Value2)
          @Html.ValidationMessageFor(model => model.Value2)
      </div>

      <div class="editor-label">
          @Html.LabelFor(model => model.MultiplyValue1Value2)
      </div>
      <div class="editor-field">
          @Html.EditorFor(model => model.MultiplyValue1Value2)
          @Html.ValidationMessageFor(model => model.MultiplyValue1Value2)
      </div>

      <p>
          <input type="submit" value="Save" />
      </p>

  </fieldset>
}
<div>
  @Html.ActionLink("Back", "Index")
</div>

结果:

当我输入value1和value2时,我想重视 由于乘法Value1和Value2

,MultiplyValue1Value2自动完成

我该怎么做?

2 个答案:

答案 0 :(得分:1)

如下所示使用keyup(): -

$('#Value1,#Value2').on('keyup',function(){
    var val1 = Number($('#Value1').val());
    var val2 = Number($('#Value2').val());
    $('#MultiplyValue1Value2').val(isNaN(val1 * val2) ? 0 :(val1 * val2));
});

DEMO

答案 1 :(得分:1)

你必须使用javascprit来做到这一点,使用jQuery你可以这样做

.box
{ 
  height: 100%;
}

$("#Value1, #Value2").on("input",function(){
   var val1 = parseInt($('#Value1').val());
   var val2 = parseInt($('#Value2').val());

   if(!isNaN(val1) && !isNaN(val2))
      $('#MultiplyValue1Value2').val(val1 * val2);
});
$("#Value1, #Value2").on("input",function(){
   var val1 = parseInt($('#Value1').val());
   var val2 = parseInt($('#Value2').val());

   if(!isNaN(val1) && !isNaN(val2))
	  $('#MultiplyValue1Value2').val(val1 * val2);
});