未捕获的ReferenceError:var未定义

时间:2013-12-25 22:50:59

标签: javascript jquery

我有一张桌子,上面有你可以投票和投票的城市。根据您单击哪个按钮,隐藏的输入会获取此值或该值,并通过javascript进行管理。但似乎函数调用有问题。

这是HTML:

<td><span class="icon icon-thumbs-down cursor" onclick="downvote(Hamburgo, 24)"></span></td>

这里是虚拟功能:

function upvote(ciudad, user_id)
{
    document.write("aa"); // this doesn't even work
    //$("#voto-positivo").attr("value", ciudad);
    //$("#usuario").attr("value", user_id);
    //$('#form-votar').submit();
}

function downvote(ciudad, user_id)
{
    $("#voto-negtivo").attr("value", ciudad);
    $("#usuario").attr("value", user_id);
    $('#form-votar').submit();
}

该函数的第一个值在php循环中获取,第二个值是用户的id,一切正常。

使用Google Chrome我收到以下错误:

  

未捕获的ReferenceError:Hamburgo未定义为votar:59

     

的onclick

如果需要说,是的,加载了javascript源代码。

1 个答案:

答案 0 :(得分:5)

您需要在引号中包含Hamburgo,否则它会在您没有的全局范围内查找具有该名称的变量,并且您会收到此错误。

onclick="downvote('Hamburgo', 24)"

并使用val

function downvote(ciudad, user_id){
    $("#voto-negtivo").val(ciudad);
    $("#usuario").val(user_id);
    $('#form-votar').submit();
}

另外,请注意避免使用内联处理程序并通过javascript注册事件。

示例:

<td>
   <span class="icon icon-thumbs-down cursor" data-ciudad = "Hamburgo" data-userid="24">
   </span>
</td>

 $(function(){
   $('.icon-thumbs-down').click(function(){
        var $this = $(this);
        $("#voto-negtivo").val($this.data('ciudad'));
        $("#usuario").val($this.data('userid'));
        $('#form-votar').submit();
   });
 });