我有一个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之后。