2012-08-30 30 views
0

我試圖打造爲ZetaBoards論壇軟件反饋的腳本,我創建了一個$。員額功能,當我嘗試點擊提交表單提交按鈕,它只在Firebug中返回'TypeError:e.type不是函數'。

這裏是我的代碼:

<script type="text/javascript"> 
    var forumID = '1701794'; 

    if (location.href.indexOf('/profile/') !== -1) { 
     $('table.profile:last').after('<form id="feedback_form"><table class="profile" id="feedback"><thead><tr><th colspan="4">Feedback</th></tr></thead><tbody><tr><th colspan="4">Overall Rating: # (Positive: #, Neutral: #, Negative: #)</th></tr><tr><td colspan="4">Submit feedback: <input type="text" name="comment" size="100" /> <input type="radio" name="feed_rate" value="3">0 <input type="radio" name="feed_rate" value="1">1 <input type="radio" name="feed_rate" value="2">2 <button type="button">Submit</button></td></tr><tr><th>Rating</th><th>Comment</th><th>From</th><th>Date</th></tr></tbody></table></form>'); 

     var profileID = window.location.href.split('profile/')[1].split('/')[0]; 

     $.get(main_url + 'forum/' + forumID + '/', function (data) { 
      $('table.posts:not(#announcement_list) tr[class*="row"]', data).each(function() { 
       var userID = $(this).find('td.c_cat-title a').text().split('~')[0]; 
       var rating = $(this).find('td.c_cat-title a').text().split('~')[1]; 
       var comment = $(this).find('div.description').text(); 
       var userHref = $(this).find('td.c_cat-starter a').attr('href'); 
       var userText = $(this).find('td.c_cat-starter a').text(); 
       var date = $(this).find('div.t_lastpostdate').text(); 

       if (profileID === userID) $('#feedback tbody').append('<tr><td>' + rating + '</td><td>' + comment + '</td><td><a href="' + userHref + '">' + userText + '</a></td><td>' + date + '</td></tr>'); 
      }); 
     }); 

     $('#feedback button').click(function() { 
      var userID = window.location.href.split('profile/')[1].split('/')[0]; 
      var description = $('input[name="comment"]').val(); 
      var rating = $('input[name="feed_rate"]:checked').val(); 
      var title = userID + '~' + rating; 

      $.get(main_url + 'post/?type=1&mode=1&f=' + forumID, function (data) { 
       var ast = $('input[name="ast"]', data).val(); 
       var xc = $('input[name="xc"]', data).val(); 

       $.post(main_url + 'post/', $.extend({ 
        mode: 1, 
        type: 1, 
        ast: ast, 
        f: forumID, 
        xc: xc, 
        sd: 1, 
        title: title, 
        description: description, 
        post: description + '~' + title 
       })); 
      }); 
     }); 
    } 
</script> 

以下是我正在使用它,其中:http://s1.zetaboards.com/Cory/profile/62973/

登錄與測試帳號:

用戶名:測試

密碼:Test1的

+0

確定用戶名和密碼不是小寫嗎?你真的希望人們登錄到你的網站,並在論壇腳本中找到錯誤嗎? – adeneo

+0

$ .post中的'type'參數,爲什麼需要在$ .extend()中? – timidboy

+0

我在上面發佈的用戶名和密碼是正確的,測試帳戶是這樣人們可以提交表單併爲他們自己查看錯誤。 – Cory

回答

1

您正在覆蓋funct中構建的jQuery離子$.type的值爲1. $ .post調用中的$.extend({})的用途是什麼?這是導致錯誤的原因。

這種替換:

$.post(main_url + 'post/', { 
     mode: 1, 
     type: 1, 
     ast: ast, 
     f: forumID, 
     xc: xc, 
     sd: 1, 
     title: title, 
     description: description, 
     post: description + '~' + title 
}); 

調用$.extend()沒有第二個參數將覆蓋jQuery對象的默認屬性。

+0

+1 - 我發現了同樣的事情。肯定是一個嚴重的問題。 – jfriend00

+0

工程就像一個魅力,非常感謝你! – Cory

相關問題