我有一个MVC(Razor)网络应用程序。该表单有2个字段,一个下拉框(Kendo)和一个日期输入字段。
用户在下拉列表中进行更改后,我的第二个输入字段将根据下拉框中选择的类型启用或禁用。当输入字段被禁用时,我使用默认值填充输入。
当用户提交表单时,我只在第二个字段启用时在viewmodel中发布第二个表单字段值,禁用时不会发布该值。我知道这是HTML中的一种常见模式,禁用的字段不属于POST。
我的问题:如何在禁用字段时解决此问题以获取值?它应该在JS ...
中完成答案 0 :(得分:0)
我有类似的要求,我做的是,创建了一个类,通过删除鼠标事件和样式,使文本框显示为禁用
[https://codepen.io/DawsonMediaD/pen/Dqrck][1]
或
有点棘手,就在帖子之前,启用所有这些
答案 1 :(得分:0)
修正了它,在下拉框的onchange处理程序中附加了这个JS代码:
var defaultDateValue = "2017-01-04"; //just for demo
var $effectiveToInput = $("#@Html.IdFor(m => m.EffectiveToDate)");
$effectiveToInput.parent().append("<input type=\"hidden\" name=\"@Html.NameFor(m => m.EffectiveToDate)\" id=\"@Html.NameFor(m => m.EffectiveToDate)\" value=\"" + defaultDateValue +"\" />");
对于其他类型,我用支票清除隐藏的字段:
function removeHiddenEffectiveToDateField() {
var $effectiveToInput = $("#@(Html.IdFor(m => m.EffectiveToDate))[type = hidden]");
if (null !== $effectiveToInput) {
$effectiveToInput.remove();
}
}