2013年6月25日 星期二

jQuery Library 改版

上禮拜主管交代要做一些事情之後,就消失了兩天,

只說了: "jQuery Library要改版,很簡單的!"

結果摸了之後才知道,根本就一堆東西都要改!!

先說一下原先的版本是 1.4.1 > 1.10.1 ,ui 的方面則是 1.8 > 1.10.3

光是看到版本上數字的差距就覺得...不是很妙。

不過人家都說很簡單了,我們就來試試看。

首先,先把 include 的地方改掉... Autocomplete 馬上死光...

好吧重新寫個 Autocomplete...後端資料來源不是 json 格式...

想說整個 Autocomplete 都重寫了,應該會過了吧...參數命名方式改變...

然後竟然 PostBack 會讓 Autocomplete 死光...要重新綁定...

原先的 $("#ID").attr("checked",True) 竟然被改成 attr > prop啊!

這就算了,連 $("#ID").Checked都從 True > Checked!

我只能說這改版真是要人命,幸好主管一向很慈(ㄐㄧㄢˋ)悲(ㄨㄤˋ)

原本禮拜一就要交出去的東西弄到禮拜三才給他,目前測試中。

只是想到之。後。還。要。再。繼。續。改

就覺得....不要這樣浪費時間好嗎~~~~~明明就一堆更重要的事情可以做!



由於此篇文章太沒營養,所以下面就教大家如何在目前最新版本上寫 Autocomplete

首先你可以先去參考 jQuery 官方網站的寫法,當然是可以 Work 的

因為我要改寫成從後端資料庫抓資料來,所以souce就改了一下

<script type="text/javascript">

function DeptAutoCompl() {

            $("#tbDept").autocomplete({
                //來源相關資料都包進去
                source: function (request, response) {
                    $.ajax({
                        //下面是我抓資料的副程式
                        url: "jGetAutoComSrc_Dept.ashx",
                        dataType: "json",
                        data: {
                            //以下是由客戶頁面端要傳送給url的參數名稱及資料
          // request.term代表你目前keyin的資料
                            q: request.term,
                            StdCode: $.trim($("#ddlChannel").val()),
                            SearchCol1: "DeptCode",
                            SearchCol2: "DeptName"
                        },
                        success: function (data) {
                            response(data);
                        }
                    });
                },
                //大小寫要注意,當初打成minlength就完全不會動
                minLength: 0,
     //下面代表 Autocomplete 的選項被選定後要做的行為
     //基本上就是把資料都抓出來填到 textbox 中
                select: function (event, ui) {
                    $(this).val(ui.item.value1 + " " + ui.item.value2);
                    $("#tbSalTel").val(ui.item.value3);
                    $("#tbSalFax").val(ui.item.value4);
                    $("#tbSolinoId").val(ui.item.value6);
                    $("#tbSolinoName").val(ui.item.value7);
                    $("#tbSolinoTel").val(ui.item.value8);
                    $("#tbSolinoExt").val(ui.item.value9);
                    $("#tbSolinoMobile").val(ui.item.value10);
                    $("#txtDeptCode").val(ui.item.value1);
                    if ($("#tbSalEmail").val() == "") {
                        $("#tbSalEmail").val(ui.item.value5);
                    }
                    //注意:有時候沒有 return false會不 work
                    return false;
                }
            })

</script>

控制項名稱的部分...就看官先自行理解...有問題再提出。

後端副程式的部分...待下回分解...因為怕貼上來看我自己眼睛都花了...XD