JavaScript函数从浏览器控制台执行,但不从Page.ClientScript.RegisterStartupScript C#方法执行
我有一个母版页,在其中导入一个脚本文件,该脚本文件具有名为JavaScript函数从浏览器控制台执行,但不从Page.ClientScript.RegisterStartupScript C#方法执行,javascript,c#,html,asp.net,webforms,Javascript,C#,Html,Asp.net,Webforms,我有一个母版页,在其中导入一个脚本文件,该脚本文件具有名为ShowNotifyErrorFor()的函数。当表单验证期间发生错误时,从使用此母版页的子页调用此方法。我是这样从C#调用这个函数的: 当我使用相同的参数从浏览器控制台调用相同的JavaScript函数时,它的执行是正确的。但当从C#调用时,它不会执行 相同的代码在不使用任何母版页的页面上工作 我尝试的是: 我检查了页面是否呈现了表单标记,因为其中一个SO问题建议使用此解决方案。但是表单标记正在呈现 我试图通过将false作为第三个参数
ShowNotifyErrorFor()
的函数。当表单验证期间发生错误时,从使用此母版页的子页调用此方法。我是这样从C#调用这个函数的:
当我使用相同的参数从浏览器控制台调用相同的JavaScript函数时,它的执行是正确的。但当从C#调用时,它不会执行
相同的代码在不使用任何母版页的页面上工作
我尝试的是:
false
作为第三个参数传递给RegisterStartupScript
来不添加脚本标记。但它不起作用ClientScript
对象是否包含渲染的脚本,发现它包含脚本,我在浏览器控制台上复制并粘贴了该脚本,它在那里工作正常您是使用UpdatePanel通过Ajax调用执行的吗?@hardkoded噢,非常感谢。UpdatePanel没有包含文本框,而是在页面中的某个位置使用。但是没有必要在那里使用它。我把它取下来,它就起作用了。请你把这个作为一个完整解释的答案加上好吗?它可以在未来帮助他人,并为我们双方赢得一些声誉积分。:)
double flatRate;
if (double.TryParse(flateRateTxt.Text, out flatRate) == false)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "ShowNotifyErrorFor", "ShowNotifyErrorFor(document.getElementById('" + flateRateTxt.ClientID + "'),'Invalid Rate')", true);
return;
}