JavaScript 模型中的 MVC3 EditorFor() 更改值无法识别更改
MVC3 EditorFor() Change Value in JavaScript Model Does Not Recognize Changes
>编辑:在看了我这样做的方式后,我决定改变我的整个视图模型,所以这个问题不再有效。 我不介意知道我做错了什么,但我真的不需要我的项目的答案。
谢谢!
当下拉列表的值更改时,我使用 Javascript 更改文本框的值。 当页面发布时,在Javascript中更改的值始终为零。
Javascript似乎工作正常,但该值无法返回到服务器。
这是我的视图模型:
...
[Required(ErrorMessage = "'"{0}'" is required")]
[Display(Name = "Mileage Out")]
public decimal MileageOut { get; set; }
[Required(ErrorMessage = "Vehicle is required.")]
public Guid VehicleID { get; set; }
[Display(Name = "Vehicle")]
public List<SelectListItem> Vehicles { get; set; }
....
以下是我的观点:
....
<div class="editor-label">
@Html.LabelFor(model => model.Vehicles, "Vehicle")
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.VehicleID, new SelectList(Model.Vehicles, "Value", "Text"), "Vehicle is required . . .", new {@onchange="GetLastMileage(this.value);"})
@Html.ValidationMessageFor(model => model.Vehicles)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.MileageOut)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.MileageOut, null, "txtMileageOut")
@Html.ValidationMessageFor(model => model.MileageOut)
</div>
...
<script type="text/javascript">
function GetLastMileage(vehicleID) {
switch (String(vehicleID))
{
@{
foreach (KeyValuePair<string, decimal> item in Model.VehiclesLastMileage)
{
@Html.Raw("case '" + item.Key + "': document.getElementById('txtMileageOut').value = '" + ((decimal)item.Value).ToString() + "';break;")
}
}
default: return 0;
}
}
</script>
我发现如果我改变这个:
@Html.EditorFor(model => model.MileageOut, null, "txtMileageOut")
对此:
@Html.EditorFor(model => model.MileageOut)
日期返回服务器正常,但 JavaScript 不起作用(文本框上没有 ID)。 显然,我使用了错误的方法在客户端上更改值,但我不知道正确的方法。
谢谢!
更改 JavaScript。
document.getElementById('txtMileageOut').value
自
document.getElementById('MileageOut').value
此外,你应该使用 jQuery 并将 javascript 移到它自己的外部文件中。它还将大大简化JS代码。您可以使用分类作为选择器而不是 ID,并在更少的代码中执行更多操作。
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 如何识别我的网站中的慢速设备
- Google/html5语音识别JavaScript SDK Chrome网络工具包SpeechRecognition
- 为集合分配大量的模型弹药
- 如何使用backbone.js从集合中获取模型名称
- AngularJS指令只识别双向绑定类型
- 骨干模型默认值-todos.js示例中不必要的代码
- EmberJS中支持单字母单词模型
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- 将不在模型中的数据返回到mvc控制器
- php脚本中无法识别ajax传递的值
- 如何在视图模型contet更新更新上调用Jquery函数
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 我应该如何检查主干.主干.模型更改时查看
- 骨干.js:将视图、集合、模型分离到不同的js文件中,它们无法相互识别
- JavaScript 模型中的 MVC3 EditorFor() 更改值无法识别更改
- 如何使用角度模块在视图中识别模型对象
- Ember中的应用程序无法识别模型,因此索引数据最终为空
- 函数未定义,Bookshelf.js模型函数未被识别为函数
- 数据库不能识别动态生成的模型实例