我使用 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>
这意味着将新标签添加到列表中,然后在提交表单时保存列表。
由于页面的整体大小,我只显示了相关部分。
我已经使用过这个设置,虽然功能不同,之前几十或几百次没有问题。我认为这不是缓存问题,因为该问题存在于以前从未访问过该页面的不同设备和浏览器上。
任何帮助是极大的赞赏!