Javascript类“Object#<htmlinputelement>没有方法'addTag'”</htmlinputelement>

时间:2013-05-20 11:28:03

标签: javascript jquery

我已经使用了很长时间的javascript,这是我第一次完全被错误地解决了。

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>

这是为了向列表添加新标记,然后在提交表单时保存列表。

由于页面的整体尺寸,我只展示了相关部分。

我已经使用过这个设置,虽然它具有不同的功能,几十次或几百次之前没有麻烦。我不认为这是一个缓存问题,因为问题存在于以前从未访问过该页面的不同设备和浏览器上。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分: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/

您能告诉我您要使用哪种浏览器进行测试吗?