ajax upload with file

紀錄一下

關鍵點是[0]

1
2
3
4
5
6
7
8
9
10
11
12
$.ajax({
    url: '/upload.php',
    type: 'POST',
    cache: false,
    data: new FormData($('#form_name')[0]), //如果要file 記得加上這個[0]
    processData: false,
    contentType: false
}).done(function(res) {
   console.log(res);
}).fail(function(res) {
   console.log(res);
});

jquery 模擬click

今天模擬一個點擊的事件
可以使用trigger

例如說 今天他選不同的radio 會有不同的javascript效果
你只能用trigger去模擬點擊去觸發某個javascript效果
你就可以用到trigger

範例是點radio button 讓她觸發一些預設的clcik行為

$(“input:radio[name=radiogroup][value=1]”).trigger(‘click’);
這樣的話 就是模擬點擊radio的行為

Deferred and promise 在jquery的範例

因為任務需求 寫一個簡單的範例
她會執行完star1後才會執行start2
star1用settimeout5秒來拖延時間

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$(document).ready(function(){
    //$.when(star1()).done( star2());
    var promise = star1();
    promise.done(star2);
});
function star1(){
    var deferred = $.Deferred();
    setTimeout(function() 
     {
        $('#x1').append('111111');
        deferred.resolve();
     }, 5000);
    return deferred.promise();
}
function star2(){
    setTimeout(function() {
    $('#x2').append('x22222');
    }, 1000);
}

ajax 選取 checkebox 使用jquery

先取得ajax的值後, 把checkbox打勾

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
$.ajax({
    url: /user/get_checked/'+appid',
    type: 'GET',
    dataType: 'json',
    success: function(data) {
        if (isEmpty(data.result)){
            //do noting 沒資料就跳過
        }else{
            $.each(data,function(key2,val2){
             if (key2=="country_code"){
                 cname=val2;
             }
             if (key2=="continent_code"){
                 cid =val2;
              }
         })
 
 
        //讀取div id=cid裡面的checkbox ,縮小選取範圍
        $('#'+cid +' input').each(function() 
        {
             tvalue =$(this).attr('value');
             if (tvalue==cname) { 
                 $(this).prop("checked", true); //當他的值跟value的值一樣就讓他打勾 這是jquery 1.6以後的作法
             }
         });}//end each
      }//end else
     }//end success fucntion
}); // end ajax
function isEmpty(obj) {
    for(var key in obj) {
        if(obj.hasOwnProperty(key))
            return false;
    }
     return true;
}

jquery 選取checkbox所有checked的值

1
var arr_val = $('input:checkbox:checked').map(function () {return this.value;}).get();

這樣可以把陣列傳進去
.map這個功能官方網站上說
Pass each element in the current matched set through a function, producing a new jQuery object containing the return values.
所以要弄成一個陣列傳到變數內 就得用.map
如果要選取特定的checkbox 可以設定不同的className
ex.
$(‘input:checkbox.group1:checked’)
那就是一個classname 叫group1的給checkbox
另一個方法是

 

1
2
3
4
5
$('input[name=checkboxName]:checked').each(function (idx, elem) {
    if (this.checked) {
        urlvalues['checkboxName'].push(elem.value);
    }
});