【问题标题】:passing a variable to javascript function from code behind将变量从后面的代码传递给 javascript 函数
【发布时间】:2013-09-23 02:59:06
【问题描述】:

我想将字符串值从后面的代码传递给 javascript 函数。因为这是我得到一个未捕获的参考错误的那一刻,说明该值未定义。

var variable= txtVariable.Value;
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "Registering", "RegisterTheUser("+variable+");", true);

建议可能正确的语法

这是函数

function RegisterTheUser(val) {
    alert(val);
}

问候

【问题讨论】:

    标签: c# javascript code-behind


    【解决方案1】:

    问题可能是您的RegisterStartupScript 在加载函数RegisterTheUser 之前正在执行。

    只有在document准备好之后,你才需要整理脚本的加载顺序或者添加一些逻辑来调用这个函数。

    在 jQuery 中是这样完成的:

    ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "Registering", "$(document).ready(function(){ RegisterTheUser("+variable+"); });", true);
    

    正如 sbhomra 在他的回答中指出的那样,如果该值是一个字符串,您可能需要添加单个 qoutes。如果是数字则不需要。

    【讨论】:

      【解决方案2】:

      您发布的内容看起来不错。我已经使用了以下内容,没有任何问题:

      ScriptManager.RegisterStartupScript(this, typeof(string), "Registering", String.Format("RegisterTheUser('{0}');", myVariable), true);
      

      您可以尝试使用我发布的示例吗?

      【讨论】:

      • 您的答案确实应该有效,问题中的代码会写成RegisterTheUser(contents of the variable); 文本周围的单引号丢失。
      • @Peter 是的,我应该在回答中详细说明。我已经在我的代码示例中自动添加了引号而没有注意到。 :-)
      猜你喜欢
      • 2011-09-05
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 2015-01-06
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      • 2017-05-11
      相关资源
      最近更新 更多