动态设置表单 填写项是否必填

需求是: 

“是否有中标通知书“ 这一栏,在页面初始化的时候,是显示的 “是否有中标通知书 可选”。根据 上一项 “是否中标”的选择值动态设设置 该项的 必填属性。

贴出关键代码,如下

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

posted @ 2022-07-15 15:12  H辉  阅读(435)  评论(0)    收藏  举报