【问题标题】:How to call javascript function on a select elements selectedIndexChange如何在选择元素 selectedIndexChange 上调用 javascript 函数
【发布时间】:2009-08-04 14:02:23
【问题描述】:

我正在使用带有 C# 的 ASP.NET

我有一个 HTMLSelect 元素,我试图在选择的索引发生更改时调用 javascript 函数。

riskFrequencyDropDown 是在 C# 代码中动态创建的,后面试过了:

 riskFrequencyDropDown.Attributes.Add("onchange", "updateRiskFrequencyOfPointOnMap(" + riskFrequencyDropDown.ID.Substring(8) + "," + riskFrequencyDropDown.SelectedValue +");");

但它不会调用我页面上的 javascript 函数。当我删除参数时它工作正常,但我需要传递这些参数以确保正常运行。

任何对此问题的见解将不胜感激

【问题讨论】:

    标签: c# asp.net html-select


    【解决方案1】:

    您的参数是数字还是字母数字?如果它们包含字母,则需要在 javascript 中引用它们。请注意下面添加的单引号。

    riskFrequencyDropDown.Attributes.Add("onchange",
                 "updateRiskFrequencyOfPointOnMap('"
                      + riskFrequencyDropDown.ID.Substring(8)
                      + "','"
                      + riskFrequencyDropDown.SelectedValue +"');");
    

    【讨论】:

      【解决方案2】:

      tvanfosson 的回答回答了您的问题。另一个要考虑的选择(这可能会让你不再遭受这种痛苦):

      在您的 C# 中编写更简单的 javascript:

      riskFrequencyDropDown.Attributes.Add("onchange",
                   "updateRiskFrequencyOfPointOnMap(this);");
      

      然后,在 javascript 函数本身(在 onchange 上调用)内部,从下拉对象中获取您需要的值

      function updateRiskFrequencyOfPointOnMap(dropDown) {
          var riskFrequencyId = dropDown.ID.Substring(8);
          var riskFrequencyValue = dropDown.SelectedValue;
          // etc
      }
      

      这种设计的一个不太明显的好处是:如果你改变了使用下拉对象的方式(可能是 Substring(6) 与 Substring(8)),你不必改变你的 C#——你只有更改您的 javascript(并且仅在一个地方)。

      【讨论】:

        【解决方案3】:

        我会建议 string.Format 加上单引号

        riskFrequencyDropDown.Attributes.Add("onchange",string.Format("updateRiskFrequencyOfPointOnMap('{0}','{1}');",riskFrequencyDropDown.ID.Substring(8),riskFrequencyDropDown.SelectedValue )); 
        

        【讨论】:

          【解决方案4】:

          我建议使用 Lance 的答案。这是因为在调用 attribute.add 时发送选定的值将意味着 onchange 将使用选定的值。

          假设 ddl 包含(“一”、“二”、“三”)并且默认选择“一”。每次调用 ddl onchange 时,updateRiskFrequencyOfPointOnMap 选择值参数将包含“一”(即使选择了“三”)。

          也就是说,如果您的预期操作是使用选定的值做某事。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-06-22
            • 1970-01-01
            • 2011-09-03
            • 2021-03-30
            • 1970-01-01
            • 1970-01-01
            • 2019-02-13
            相关资源
            最近更新 更多