我试图在MVC2视图页面中单击调用JavaScript函数。
<a onclick=" SelectBenefit(<%=o.ba_Object_id %>,<%=o.ba_Object_Code %>)" href="#">Select</a>
JavaScript函数
function SelectBenefit(id,code) {
alert(id);
alert(code);
}
这里ba_Object_Id和Code是ViewModel中的值。如果我以这种方式使用SelectBenefit(<%=o.ba_Object_id %>)
,它的工作正常。但是,当我有两个参数时,它没有。我收到了这个错误:
conditional compilation is turned off.
答案 0 :(得分:7)
我认为如果它是一个字符串,你需要在第二个参数周围加上引号:
<a onclick=" SelectBenefit(<%=o.ba_Object_id %>, '<%=o.ba_Object_Code %>')" href="#">Select</a>
这就是说你的参数需要正确编码,我不会通过它们喜欢这个。我会将它们序列化为JSON对象,以确保一切正常。像这样:
<a onclick="SelectBenefit(<%= new JavaScriptSerializer().Serialize(new { id = o.ba_Object_id, code = o.ba_Object_Code }) %>)" href="#">Select</a>
然后SelectBenefit函数可能如下所示:
function SelectBenefit(benefit) {
alert(benefit.id);
alert(benefit.code);
}
答案 1 :(得分:2)
我猜o.ba_Object_Code
不是数字?试着在它周围加上引号:
<a onclick="SelectBenefit(<%=o.ba_Object_id %>,'<%=o.ba_Object_Code %>')" href="#">Select</a>
您也可以这样写这个函数:
<a href="javascript:SelectBenefit(<%=o.ba_Object_id %>,'<%=o.ba_Object_Code %>');">Select</a>
或者使用Jquery(最佳方法,imo):
$('#yourlinkid').click(function(){
SelectBenefit(<%=o.ba_Object_id %>,'<%=o.ba_Object_Code %>');
return false;
});