2016-06-13 65 views
0

我有一个MVC(Razor)web应用程序。该表格有2个字段,一个下拉框(Kendo)和一个日期输入字段。如何有条件地发布输入字段

在用户对下拉菜单进行更改后,根据下拉框中所选的类型启用或禁用我的第二个输入字段。当输入字段被禁用时,我用缺省值填充输入。

当用户提交表单时,当第二个字段被启用时,我只获得在视图模型中发布的第二个表单字段值,当禁用时不会发布该值。我知道这是HTML中的一种常见模式,即禁用的字段不是POST的一部分。

我的问题:我该如何解决这个问题,以便在禁用该字段时获取POST值?它应该在JS做...

+0

你能告诉你的工作代码?所以我们会更容易给出答案。你是通过JS发布还是使用@ Html.BeginForm? –

+0

发布是通过使用Razor中的beginform的常规提交按钮。 –

回答

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(); 
    } 
} 
0

我也有类似的要求,我所做的就是,创建一个类,这将使文本框看起来像残疾人,除去鼠标事件和造型有点

[https://codepen.io/DawsonMediaD/pen/Dqrck][1] 

有点棘手,只是后前,使所有的人