提筆寫正文之前,首先要再次提醒一下自己,因為總是記不住,以至大神同事們都開始用“嫌棄”的眼光看自己了—— 記得使用easyui中的combobox嗎?效果是醬紫滴:
平常使用的時候,也就是很普通的下拉選框,即單選,但是我們工作中卻遇到了將這個下拉選框做成多選框的樣式,即:
其實也就是在平常引用中增加了一個“多選”的屬性:
<input id="steels" name="stids" class="easyui-combobox" data-options="prompt:'請選擇鋼廠',valueField:'id',textField:'name',multiple:true,url:'/vip/users/steellist',
panelHeight:'200px'" style="width: 150px">
問題就醬紫出現了:
在第一個選項之前,莫名其妙的多了一個逗號。這個問題,其實從自己剛開始做項目之前就發現了,可當時這也是“偶發性”,自己並沒有搞清楚為什么會出現這樣的情況,也就有點僥幸心理,想着最后再解決,直到今天,手邊的工作快結束了,這個bug便被徹底的翻出來了,於是一個小一個下午的時間,都在研究這究竟是怎么一回事,或許是從來對自己都沒有信心吧,在專業問題上,總是不敢說出自己的想法,以至於到最后還是請教了大神上司,結果可想而知:挨罵那是必須的~~(這周,是哪里出現問題了,總是讓人以為自己不再狀態,錯誤頻出,希望下周進入狀態吧!)
又扯遠了……回到正題:
關於逗號這個問題,其實關鍵並不在於combobox本身組件問題,而是由於自己自身原因:因為我們現在做的項目基本都要做“增刪改查”,比如新增上去新會員,接着就應該將剛才新增的內容回顯在頁面上,而我卻使用了一個“偷空減料”的方法,因為整個修改的頁面是寫在form表單中的,因此在回顯數據的時候,直接是醬紫滴:
jQuery("#addForm").form("load", row); //賦值,回顯數據
本以為天衣無縫、巧奪天工,卻不曾想自己忘記了一個重大的問題:新增或者修改的頁面是寫在form表單中的,但是上述的多選框的數據在load之前,若數據庫里面沒數據,即此值為空的情況下,load進去的話,會默認給加一個“”,這也就是為什么在第一個數據之前出現了逗號,最開始的時候,曾以為這是這個組件本身的bug,沒成想是自己的問題,真覺得汗顏!最終的解決方案就是:
jQuery('#steels').combobox('clear'); jQuery("#addForm").form("load", row); //賦值
在load值之前,先將該下拉框的值清空,這樣就把其中的“”刪掉了。
總結:
datetimebox也有clear方法了,結果就出現了時間控件中的值如果是粘貼或者復制過來的,它就是無效的,正確的便是給它.("setValue",""),setValue為空;
2.遇事,一定自己先解決,一定呢!
作者:鄭葉葉
出處:http://www.cnblogs.com/zhengyeye
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接。