我的表单包含两个字段.... Owner_ID
和AQ_Manager
。我想将AQ_Manager
字段默认设为名称,具体取决于输入Owner_ID
字段的内容。例如,如果用户输入"公司A"进入Owner_ID
字段,我想将AQ_Manager
字段默认为" John Smith"。有没有办法让我做到这一点?
型号信息:
[DisplayName("Owner ID")]
public string Owner_ID { get; set; }
[DisplayName("AQ Manager")]
public string AQ_Manager { get; set; }
查看:
<div class="form-group">
@Html.LabelFor(model => model.Owner_ID, new { @class = "control-label col-md-2 required CreateEditFieldNamesSpan" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.Owner_ID (SelectList)ViewBag.VBProjectOwnerList, "--Select Owner--")
@Html.ValidationMessageFor(model => model.Owner_ID)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.AQ_Manager, new { @class = "control-label col-md-2 CreateEditFieldNamesSpan" })
<div class="col-md-10">
@Html.EditorFor(model => model.AQ_Manager)
@Html.ValidationMessageFor(model => model.AQ_Manager)
</div>
</div>
答案 0 :(得分:1)
根据您的评论,您已指出@media (min-width: 768px) and (max-width: 991px){ //STYLE STUFF }
只有3个选项,因此您可以向视图模型添加属性以存储关联的默认值(例如)Owner_ID
并在GET中方法,初始化集合并添加3个值(与3个选项的顺序相同)
public List<string> DefaultManagers { get; set; }
并在视图中包含以下脚本
model.DefaultManagers = new List<string>{ "John", "Bob", "Jim" };
return View(model);
将创建一个包含3个值的javascript数组。然后处理下拉列表的var defaults = @Html.Raw(Json.Encode(Model.DefaultManagers))
事件并更新文本框
.change()
另一种选择,如果视图更复杂并且您需要更新多个输入,则可以使用ajax来调用返回所需结果的控制器方法
$('#Owner_ID').change(function() {
var index = $(this).children('option:selected').index();
$('#AQ_Manager').val(defaults[index]);
});
并且控制器方法将是
var url = '@Url.Action("GetDefaults")';
$('#Owner_ID').change(function() {
$.getJSON(url, { id: { $(this).val() }, function(data) {
$('#AQ_Manager').val(data.DefaultManager);
$(anotherElement).val(data.SomeOtherPropery);
});
});
答案 1 :(得分:0)
根据您的问题,您要在&#39; Owner_Id&#39;中输入值。领域。我们可以轻松地在AQ_Manager&#39;中设置默认值。字段使用java脚本或JQuery。语法更改取决于您的字段类型