2009-02-25 77 views
0

我有一个简单的基于母版页的ASPX页面。在ASPX页面上,我有两个下拉菜单和一个按钮。当按下按钮时,我想执行一些JavaScript。为此,我使用了Button的属性集合(Add(“onclick”,script))。ASP.NET,Visual Studio,C#和Javascript

我的剧本是这样的:

string script = "return confirm ('You have selected' + document.getelementbyid(DropDownList1).value + document.getelementbyid(DropDownList2).value)"); 

Button1.Attributes.Add("onclick", script); 

下拉框元素名称是现货,但为什么不JavaScript的火?按钮的点击事件(显然)会在我单击事件时被触发,但没有任何反应。

这是在C#中完成的。如果我使用ASPX并在ASPX标记中编写基本的JavaScript函数,intellisense甚至不会为documentgetelementbyid提供值属性。为什么?我的浏览器完全启用了(Firefox),因为我之前有这个工作,但是当我添加了主页并且基于我的ASPX页面时,所有东西都变成了梨形。

为什么上面的脚本没有工作?

谢谢

+0

部分代码将帮助 – 2009-02-25 21:38:38

+0

更改您的标题问题以反映实际问题,标题过于笼统且具有误导性。 – 2009-02-26 16:37:05

回答

1

区分大小写:document.getElementById?

1

不应该DropDownList1和DropDownList2在引号中?

1

当某些JavaScript代码似乎无法正常工作时,可能是因为语法无效。

为了防止这种情况,您可以:

  • 验证您的当前语句(我想,也许下拉菜单的ID应该用单引号括起来)。
  • 先尝试一个简单的警报,看看它是否工作 - alert('Hello world'); -

如果没有,请尝试使用按钮的OnClientClick属性进行播放。

0

你也应该在你的属性 “的javascript”:

字符串脚本=“JavaScript的:确认(.value的+的document.getElementById(DropDownList2) '您选择' +的document.getElementById(DropDownList1)。值)”);

Button1.Attributes.Add(“onclick”,script);

+0

不,不应该需要。 – erikkallen 2009-02-25 21:58:14

5

有你尝试添加客户端ID

string script = "javascript:return confirm ('You have selected' + document.getelementbyid('"+DropDownList1.ClientID+"').value + document.getElementByid('"+DropDownList2.ClienID+"').value)"); 
2

我不能完全确定你的环境,但你可能要采取偷看在多数民众赞成由你的ASP页面生成的源。主页面添加一个前缀来控制名称“打破”getElementById调用。看看下面的内容:http://west-wind.com/weblog/posts/4605.aspx看看是否能解决你的问题。