2013-05-20 26 views
2

我已經使用JavaScript了足夠長的時間,這是我第一次完全不知道什麼是錯。Javascript類「對象#<HTMLInputElement>沒有方法'addTag'」

Object #<HTMLInputElement> has no method 'addTag' 

所以,這裏是JavaScript文件。

function actions(){ 
    var main = this; 

    this.addTag = function(){ 
     var sTag = $('#sTag').val(); 
     if(sTag!=''){ 
      var i = $('#tag-list li').length+1; 
      var html = '<li id="tag_'+i+'">'; 
       html+= ' <input type="hidden" name="sTags" value="'+sTag+'" />'+sTag; 
       html+= ' <a href="#" class="small button delete" title="Remove tag" onclick="act.removeTag('+i+');return false;"></a>'; 
       html+= '</li>'; 
      $('#tag-list ul').append(html); 
      $('#tag-list').show(); 
     } 
    } 
    this.removeTag = function(i){ 
     $('#tag_'+i).remove(); 
     if($('#tag-list li').length==0){ 
      $('#tag-list').hide(); 
     } 
    } 
} 

相對基本。 JavaScript文件包含在頁面像這樣

<script type="text/javascript" src="scripts.js"></script> 
<script type="text/javascript"> 
    var act = new actions(); 
</script> 

再往形式的頁面,有一個基本的系統標籤添加到列表中

<input type="text" id="sTag" name="sTag" size="30" class="text left" style="margin:5px 4px 0 0;" value="" /> 
<a href="#" class="short medium button" onclick="act.addTag();return false;"><span class="tick"></span>Add</a> 

這是爲了增加一個新的標籤到列表中,當表單被提交時,列表將被保存。

由於頁面的整體大小,我只顯示相關部分。

我已經使用過這個設置,雖然功能不同,幾十次或幾百次之後都沒有問題。我不認爲這是一個緩存問題,因爲問題存在於以前從未訪問該頁面的不同設備和瀏覽器上。

任何幫助,非常感謝!

+0

對我來說很好http://jsfiddle.net/arunpjohny/4zxuN/1/ –

+1

[TypeError:prc.cng()不是Firefox中的函數,Uncaught TypeError:Object#有可能重複在Chrome瀏覽器中的方法'cng'](http://stackoverflow.com/questions/16581252/typeerror-prc-cng-is-not-a-function-in-firefox-uncaught-typeerror-object) – Quentin

+0

jsfiddle版本的工作原理,但不是我自己的。現在真的很困惑。我也認爲其他帖子由於代碼/結構不夠而不盡相同,儘管最終發生了幾乎相同的錯誤。 –

回答

0

據在這裏工作

function actions(){ 

    this.addTag = function(){ 
     alert('add'); 
     var sTag = $('#sTag').val(); 
     if(sTag!=''){ 
      var i = $('#tag-list li').length+1; 
      var html = '<li id="tag_'+i+'">'; 
       html+= ' <input type="hidden" name="sTags" value="'+sTag+'" />'+sTag; 
       html+= ' <a href="#" class="small button delete" title="Remove tag" onclick="act.removeTag('+i+');return false;"></a>'; 
       html+= '</li>'; 
      $('#tag-list ul').append(html); 
      $('#tag-list').show(); 
     } 
    } 
    this.removeTag = function(i){ 
     $('#tag_'+i).remove(); 
     if($('#tag-list li').length==0){ 
      $('#tag-list').hide(); 
     } 

    } 
} 


    act = new actions(); 

檢查這個的jsfiddle。 http://jsfiddle.net/Uf9y6/2/

你能告訴我你正在使用哪個瀏覽器進行測試嗎?

+0

在Chrome和IE10,多設備上使用Chrome進行測試。 –

相關問題