动态设置表单 填写项是否必填
需求是:
“是否有中标通知书“ 这一栏,在页面初始化的时候,是显示的 “是否有中标通知书 可选”。根据 上一项 “是否中标”的选择值动态设设置 该项的 必填属性。
贴出关键代码,如下
@(Html.DevExtreme()
.Form<project_record>()
.ID("formOrder")
.ShowOptionalMark(true)
.Items(items =>
{
items.AddGroup().Caption("商务参与").CssClass("group_css")
.Items(i =>
{
i.AddSimpleFor(m => m.is_win_bid).Editor(e => e.SelectBox().ID("is_win_bid").OnValueChanged("is_win_bid_change"));
i.AddSimpleFor(m => m.is_win_bid_notice).Editor(e => e.SelectBox().ID("is_win_bid_notice"));
});
})
function is_win_bid_change(e) {
var isRequired = e.value == 1;
formOrderItems("formOrder",[
{dataField:"is_win_bid_notice",attrs:[{key:"isRequired",value:isRequired},{key:"visible",value:isRequired}],group:"business_group"}
]);
// formOrderItems2('is_win_bid_notice', 'isRequired', value:isRequired);
}
//第二种
function formOrderItems2(field, attr, attr_value){
$("#formOrder").dxForm("instance").itemOption("business_group." + field, attr, attr_value);
}
//第一种
function formOrderItems(formId,option) {
//var option={ dataField, attr, value,name,group}
var formOrderItems= $("#"+formId).dxForm("instance").option("items");
//console.log(formOrderItems);
$.each(option, function (k, attrItem) {
if(attrItem.group)
{
// console.log(attrItem.group);
$.each(formOrderItems, function (g, p) {
if(p.name==attrItem.group)
{
groupItems=p.items;
return;
}
});
}
else{
groupItems=formOrderItems;
}
// console.log(groupItems);
$.each(groupItems, function (i, v) {
if ((attrItem.dataField && v.dataField == attrItem.dataField) || (attrItem.name && v.name == attrItem.name)) {
// console.log(attrItem);
$.each(attrItem.attrs, function (a, t) {
v[t.key] = t.value;
});
return;
}
});
});
//console.log(formOrderItems);
$("#"+formId).dxForm("instance").option("items", formOrderItems);
}
浙公网安备 33010602011771号