我有一个SelectList代表订单的交货类型。

交货类型参考数据具有常用的代码/描述,但还具有一个附加的布尔属性,该属性指示是否需要为所选类型输入更多信息。

因此,对于紧急交付,还需要其他数据。如果选择了“紧急情况”,则其他数据输入字段将设置为可见,否则为隐藏

我的ViewModel包含<List>ReferenceDeliveryTypes,其中包含3个属性。
我已经从ViewModel数据创建了一个SelectListItems

@Html.DropDownListFor(model => model.DeliveryTypeCode,
    new SelectList(Model.ReferenceDeliveryTypes as System.Collections.IEnumerable,
        "DeliveryTypeCode", "DeliveryTypeDescription"), new { id = "ddlDeliveryType" })


如何更改传递类型时调用jQuery函数,传递所选代码并检查该代码的Model.ReferenceDeliveryTypes以查看其他数据属性是否为true / false,以显示/隐藏其他字段div

我设法获得调用jQuery函数以传递值。

$(function () {

$('#ddlDeliveryType').change(function () {
    var value = $(this).val();
    alert(value);
});


});

最佳答案

我不知道您可以使用选择列表来做到这一点,但我建议您使用以下选项:


简单但很容易-例如,在DeliveryTypeDescription的末尾添加一个字符串(紧急交付),然后在change函数中检查该字符串
另一个技巧-将DeliveryTypeCode乘以10,如果是紧急交付,则加1(然后在更改功能中使用mod 10)
使用Ajax查找功能
使用需要紧急交付的代码加载JavaScript查找表
在表单中使用隐藏字段,其中包含带有适当分隔符的紧急代码的字符串列表


祝好运

更新
对于隐藏字段选项,如果您使用123|456|789|之类的东西,然后使用indexOf|附加到所选ID之后。

08-08 08:59