2010-10-04 35 views
1

我正在使用javascript来验证用户输入在我的aspx页面上。我很容易验证文本框和下拉列表的differenet方案。从静态属性验证dropdownlist selectedvalue列表

现在,在我的一个下拉列表中(对于国家),我需要检查它是否是允许的国家或不是针对特定服务。我已将有效的国家/地区列表存储在静态属性中。有没有一种方法来验证我的下拉列表选定值与静态属性?

任何帮助将不胜感激。

干杯, Abhi。

function validateService(source, args) 
{ 
      var country = document.getElementById('<%= ddDestCountry.ClientID %>'); 
      var service = document.getElementById('<%= ddService.ClientID %>'); 
// Get allowed country list from my static class 
      var countryList = document.getElementById('<%= StaticProperties.EUCountryList %>'); 

      if (service.value == "P") 
      { 
       // I want to do something like this 
       if (!countrylist.Contains(country.value)) 
       { 
        args.IsValid = false; 
       } 
       else { 
        args.IsValid = true; 
       } 
      } 
      return; 
     } 

更新(附加信息):静态属性是只读的,因此它不能从页面中篡改。

回答

2

这个验证应该在服务器端完成,而不是在客户端完成。没有任何东西可以阻止我使用greasemonkey来改变你的静态列表,并且当我把你的页面加入并在你的“验证”列表中插入“Oz”作为一个国家

+0

它是一个只读的静态属性,所以它不能被改变从aspx页面。在客户端处理它还不是个好主意吗?在客户端有没有另一种更好的方法来处理这个问题? – 2010-10-04 13:16:22

+0

+1它至少应该在服务器端处理。客户端验证是额外的。如果用户在浏览器中关闭了JavaScript,该怎么办?客户端验证非常好,所以用户不必回发页面,但是您必须有服务器端验证才能确保信息真正有效。 – 2010-10-04 13:39:34

+0

使用像greasemonkey这样的螺栓式mod引擎,没有像“只读”这样的东西。 Greasemonkey做的是在页面加载到客户端后附加额外的javascript。完成此操作后,greasemonkey脚本中的任何JavaScript都可以对DOM的内容执行任何操作。您无法在客户端锁定浏览器。作为一个例子,下面是一个grepmonkey脚本,用于避免使用只读值来计算启用下载链接前剩余时间的RapidShare下载延迟。 http://userscripts.org/scripts/show/10380 – FatherStorm 2010-10-04 13:53:30