如何在锚OnClick
事件中分隔Javascript数据绑定字符串参数?
OnClick
事件包含对Javascript函数的调用。 我需要Container.DataItem
的“双引号”
我需要OnClick
的“单引号”。
对于Javascript函数调用的输入字符串参数,我还需要一个分隔符(三引号?)。
由于我不能再次使用'单引号',我如何确保Javascript函数知道输入参数是字符串而不是整数?
如果没有输入字符串参数的额外引号,Javascript函数会认为我传入的是整数。
主播:
<a id="aShowHide" onclick='ToggleDisplay(<%# DataBinder.Eval(Container.DataItem, "JobCode") %>);' >Show/Hide</a>
这是Javascript:
<script language="JavaScript" type="text/javascript">
/* Shows/Hides the Jobs Div */
function ToggleDisplay(jobCode)
{
/* Each div has its ID set dynamically ('d' plus the JobCode) */
var elem = document.getElementById('d' + jobCode);
if (elem)
{
if (elem.style.display != 'block')
{
elem.style.display = 'block';
elem.style.visibility = 'visible';
}
else
{
elem.style.display = 'none';
elem.style.visibility = 'hidden';
}
}
}
</script>
答案 0 :(得分:27)
我最近遇到过类似的问题,解决问题的唯一方法是使用普通的旧HTML代码('
)和双引号("
)。
源代码当然是完全混乱,但它确实有效。
尝试
<a id="aShowHide" onclick='ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode") %>");'>Show/Hide</a>
或
<a id="aShowHide" onclick='ToggleDisplay('<%# DataBinder.Eval(Container.DataItem, "JobCode") %>');'>Show/Hide</a>
答案 1 :(得分:5)
onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); '
使用如上所述。
答案 2 :(得分:2)
如果没有输入字符串参数的额外引号,Javascript函数会认为我传入的是整数。
你能做一些基本的字符串函数来强制JavaScript将它改成字符串吗?喜欢
value = value + ""
答案 3 :(得分:0)
尝试将额外的文本放在服务器端脚本块中并连接。
onclick='<%# "ToggleDisplay(""" & DataBinder.Eval(Container.DataItem, "JobCode") & """);" %>'
编辑:我很确定你也可以在脚本块之外使用双引号。
答案 4 :(得分:0)
将变量传递给函数而不使用单引号或双引号
<html>
<head>
</head>
<body>
<script language="javascript">
function hello(id, bu)
{
alert(id+ bu);
}
</script>
<a href ="javascript:
var x = "12";
var y = "fmo";
hello(x,y)">test</a>
</body>
</html>