我有这个 JavaScript 函数:
<script type="text/javascript">
function montaDataSubstituicaoPrestador(dt_exclusao) {
var arrData = dt_exclusao.split('/');
var exclusaoFormatada = arrData[1] + '-' + arrData[0] + '-' + arrData[2];
var dias = parseInt(prazoSubPrestador);
var novaData = new Date(arrData[2], arrData[1] - 1, arrData[0]);
novaData.setDate(novaData.getDate() + dias);
hoje = new Date(novaData)
dia = hoje.getDate()
mes = hoje.getMonth()
ano = hoje.getFullYear()
if (dia < 10)
dia = "0" + dia
if ((mes + 1) < 10)
mes = "0" + (mes + 1);
if (ano < 2000)
ano = "19" + ano
var dt = dia + "/" + (mes) + "/" + ano;
document.getElementById('lblPrazoSubsAns').innerHTML
= "Prazo de substituição: " + dt;
}
</script>
我从后面的代码中得到了这个调用:
ClientScriptManager cs = Page.ClientScript;
cs.RegisterClientScriptBlock(this.GetType(),
"MontaDataExclusaoPrazoANS",
"montaDataSubstituicaoPrestador(" + calDataExclusao.Date + ")", true);
这不起作用。什么都没发生。我必须做什么?
如果我这样做,可以工作,但参数为空:
ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
"_montaDataSubstituicaoPrestador",
"montaDataSubstituicaoPrestador(null);", true);
但是,如果改变不起作用。不接受连接字符:
ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
"_montaDataSubstituicaoPrestador",
"montaDataSubstituicaoPrestador(" + nova_data + ");", true);
这样,我遇到了这个错误:
Uncaught SyntaxError: missing ) after argument list
为什么?
最佳答案
尝试更改您的功能
ClientScriptManager cs = Page.ClientScript;
cs.RegisterClientScriptBlock(this.GetType(), "MontaDataExclusaoPrazoANS", "montaDataSubstituicaoPrestador(" + calDataExclusao.Date + ")", true)
至
ClientScriptManager cs = Page.ClientScript;
cs.RegisterClientScriptBlock(this.GetType(), "MontaDataExclusaoPrazoANS", "montaDataSubstituicaoPrestador('" + calDataExclusao.Date + "')", true)
并且对于
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "_montaDataSubstituicaoPrestador", "montaDataSubstituicaoPrestador(" + nova_data + ");", true);
到
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "_montaDataSubstituicaoPrestador", "montaDataSubstituicaoPrestador('" + nova_data + "');", true);
因为 javascript 不能将直接参数理解为参数,所以在连接时必须用单引号指定它。 希望它能发挥作用
关于从代码隐藏(C#)调用时,Javascript 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34138439/