我有一张桌子,上面有你可以投票和投票的城市。根据您单击哪个按钮,隐藏的输入会获取此值或该值,并通过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源代码。
答案 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();
});
});