Flex表單自動填充與表單資料自動收集

2021-08-31 15:42:28 字數 2667 閱讀 1258

如題,以下**展示如何講介面的表單域的值自動歸集到指定物件,以及如何用指定物件自動填充表單域,思路很簡單,但用起來挺方便的,**結構不算好,但挺穩定的,所以也懶得去重構了。

簡單的說下原理:

1 收集表單資料,通過指定容器物件,對容器進行遞迴遍歷,當發現是表單域時,判斷物件是否有表單網域名稱稱相同的屬性,如果有則將表單域的值設定到物件中。

2 同理重置表單和自動填充表單對1做反向操作就行,只是對下拉、radio等會自動定位判斷。

問題:2 當介面的表單值對應到多個物件時要自動填充怎麼辦,同樣,呼叫多次fillform(rec:object,container:object)就行。

支援flex3和flex4版本。

package ***.service

public static function getinstance():formparser

var count:number=container.numchildren;

for(var i:number=0;ielse if(ischeckbox(obj))

else if(isradiobutton(obj))

if(obj.selected)

}else if(iscombobox(obj))

else if(isdropdownlist(obj))

else if(isradiobuttongroup(obj))

else if(obj is container||obj is ivisualelementcontainer)}}

/***

* 為物件增加指定屬性和屬性值

*/bo[obj["id"]]=propertyvalue;

}/***

* 重置form中的項

*/public function resetform(container:object):void

else if(ischeckbox(obj))

else if(isradiobutton(obj))

if(obj.groupname==undefined||obj.groupname=="")

}else if(iscombobox(obj))

else if(isradiobuttongroup(obj))

else if(isdropdownlist(obj))

else if(obj is container|| obj is ivisualelementcontainer)}}

/***

* 根據物件填充表單

*/public function fillform(rec:object,container:object):void

var count:number=container.numchildren;

for(var i:number=0;i}

var value:string=getvalue(rec,name);

if(istextfield(obj))

else if(ischeckbox(obj))

}else if(isradiobutton(obj))

else}}

else if(iscombobox(obj)||isdropdownlist(obj))

else

}else if(obj is container||obj is ivisualelementcontainer)}}

private function getvalue(rec:object,name:string):string

private function getobjectname(rec:object,obj:object):string

if(rec.hasownproperty(name))

return null;

} private function isformcontrol(obj:object):boolean

if(ischeckbox(obj)||isradiobutton(obj)||iscombobox(obj))

return false;

} /**

* source combox下拉列表資料來源

* itemdata 下拉資料來源中某項的data屬性值

* return itemdata對應的item

*/public function getitembydata(source:object,itemdata:object):object

for each(var obj:object in source)

}return null;

} private function isdropdownlist(obj:object):boolean

private function isradiobuttongroup(obj:object):boolean

private function isradiobutton(obj:object):boolean

private function iscombobox(obj:object):boolean

private function ischeckbox(obj:object):boolean

private function istextfield(obj:object):boolean

return false;

} }}

取消表單自動填充功能

使用者輸入表單內容進行登入,當其中包含密碼的時候,某些瀏覽器比如chrome會提示記住密碼。讓後當你下一次開啟網頁,然後瀏覽器會自動幫你填充表單。可是有時候我們不希望這樣做。如何去掉呢?網上有很多方案 type text name foo autocomplete off type text sty...

表單密碼自動填充hack

寫前端的,最討厭的事有幾個,其中乙個就是使用者 自己輸入的密碼被瀏覽器記住之後,每次開啟頁面都會自動填充。甚至不分青紅皂白,每個頁面只要有password型別的輸入框,就會自動填充。尤其是chrome。不僅煩人,有時候還會影響樣式,比如chrome下,輸入框帶有背景icon,但是自動填充會變成黃色背...

表單密碼自動填充hack

寫前端的,最討厭的事有幾個,其中乙個就是使用者 自己輸入的密碼被瀏覽器記住之後,每次開啟頁面都會自動填充。甚至不分青紅皂白,每個頁面只要有password型別的輸入框,就會自動填充。尤其是chrome。不僅煩人,有時候還會影響樣式,比如chrome下,輸入框帶有背景icon,但是自動填充會變成黃色背...