$( "#user" ).autocomplete({ source: function( request, response ) { $.ajax({ url: iANGEL + "manageuser/search/" + $("#user").val(), cache: false, type:"GET", dataType:"json", success: function( data ) { //check response data if(data.user_data.status == 200){ response($.map( data.user_data.result, function( item ) { return item; })); } } }); }, select:function(event,ui){ $.console("[AUTOCOMPLETE] select"); //$.console(ui.item); $(this).val( ui.item.User_NickName).attr("data",ui.item.User_ID); return false; } }).data( "autocomplete" )._renderItem = function( ul, item ) { //$.console(item); return $( "<li>" ) .data( "item.autocomplete", item ) .append( "<a>" + item.User_NickName + "</a>" ) .appendTo(ul); };
星期一, 12月 31, 2012
[jQuery UI] autocomplete 控制項
試很久才正常的自動完成控制項,
一開始用keyup的事件綁定後,向後端拿資料,再初始化自動完成控制項,
但就是會有異常的情況,包含後端包出來的JSON的客製的,別頁又可以正常work。
最後終於試了正常的方向,在這記錄一下,以免下次要用又搞很久Orz。
測試版本為jquery ui 1.9.1版
星期三, 12月 26, 2012
星期五, 12月 21, 2012
[jQuery] 頁面刷新處理 (F5鍵)
找了一些偵側頁面被觸發刷新的檢查的二個範例
第一種是補捉按鍵的keycode但是如果按瀏覽器的重新整理無法偵測
$(document).bind("keypress keydown keyup", function(e) { if(e.which === 116) { return false; } if(e.which === 82 && e.ctrlKey) { return false; } });第二種是比較好的方法,連上一頁跟下一頁都能一起觸發
$(window).bind('beforeunload', function() { return "Are u sure to reload?"; });
星期四, 12月 20, 2012
[jQuery API] ajaxPrefilter
//before ajax request handler
<>
<>
$.ajaxPrefilter(function( options, originalOptions, jqXHR ){ $.console("[ajaxPrefilter] ajax url:" + options.url); });
星期日, 12月 16, 2012
[Javascript] 日期計算的應用
常常會用到又會忘記的日期格式運算。
找了一些文章說用format("yyyy-MM-dd")可以格式化但一直爆炸XD
找到的應用會直接更新在這篇。
//取得現在的日期 var currentTime = new Date(); //往前推30天 currentTime.setDate(currentTime.getDate() + (-30));
//第一天跟最後一天 var date = new Date(); var firstDay = new Date(date.getFullYear(), date.getMonth(), 1); var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);
//格式化yyyy/mm/dd function dateFormat(date){ var d = date.getDate(); var day = (d < 10) ? '0' + d : d; var m = date.getMonth() + 1; var month = (m < 10) ? '0' + m : m; var yy = date.getYear(); var year = (yy < 1000) ? yy + 1900 : yy; var finalDate = year + "-" + m + "-" + d; return finalDate; }; //日期相差的天數 function getDiffDays(endDate){ var date1 = new Date(); var date2 = new Date(Date.parse(endDate.replace("-", "/"))); var date3 = date2.getTime() - date1.getTime();//時間差的毫秒数 var days = Math.floor(date3/(24*3600*1000));//相差天數 return days; };
星期一, 12月 10, 2012
[Javascript] Detect flash version
偵測客戶端目前有沒有裝Flash的外掛。
I agree with Max Stewart. SWFObject is the way to go. I'd like to supplement his answer with a code example. This ought to to get you started:
if(swfobject.hasFlashPlayerVersion("9.0.115"))
{
alert("You have the minimum required flash version (or newer)");
}
else
{
alert("You do not have the minimum required flash version");
}
Replace "9.0.115" with whatever minimum flash version you need. I chose 9.0.115 as an example because that's the version that added h.264 support.
If the visitor does not have flash, it will report a flash version of "0.0.0", so if you just want to know if they have flash at all, use:
if(swfobject.hasFlashPlayerVersion("1"))
{
alert("You have flash!");
}
else
{
alert("You do not flash :-(");
}
星期日, 12月 09, 2012
[Javascript] setTimeout
經常會使用的setTimeout方法,做個筆記
設定Timeout,預設只會執行一次,毫秒為單位
setTimeout(function() { myFunc(); }, 4000)
重覆執行setTimeout
function myFunc(){
setTimeout(function(){ myFunc();},4000)
}
取消setTimeout
var timerID = setTimeout(function(){ myFunc();},4000)
clearTimeout(timerID );
設定條件停止
function myFunc(){
if(flag == true){
setTimeout(function(){ myFunc();},4000)
}
}
設定Timeout,預設只會執行一次,毫秒為單位
setTimeout(function() { myFunc(); }, 4000)
重覆執行setTimeout
function myFunc(){
setTimeout(function(){ myFunc();},4000)
}
取消setTimeout
var timerID = setTimeout(function(){ myFunc();},4000)
clearTimeout(timerID );
設定條件停止
function myFunc(){
if(flag == true){
setTimeout(function(){ myFunc();},4000)
}
}