【问题标题】:Validate dropdownlist selectedvalue against a list from static property根据静态属性的列表验证下拉列表 selectedvalue
【发布时间】:2010-10-04 12:55:41
【问题描述】:

我正在使用 javascript 来验证我的 aspx 页面上的用户输入。我可以轻松验证不同场景的文本框和下拉列表。

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

任何帮助将不胜感激。

干杯, 阿比。

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;
        }

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

【问题讨论】:

    标签: c# javascript asp.net validation


    【解决方案1】:

    此验证应在服务器端完成,而不是在客户端。没有什么可以阻止我使用greasemonkey 更改您的静态列表,同时我将您的页面打开并在您的“验证”列表中插入“Oz”作为国家/地区

    【讨论】:

    • 它是一个只读的静态属性,因此不能从 aspx 页面更改。在客户端处理它仍然是一个坏主意吗?还有其他更好的方法可以在客户端处理这个问题吗?
    • +1 至少应该在服务器端处理。客户端验证是额外的。如果用户在他们的浏览器中关闭了 javascript 怎么办?客户端验证很好,因此用户不必回发页面,但是您必须进行服务器端验证才能确保信息实际有效。
    • 使用像greasemonkey这样的固定式mod引擎,没有“只读”之类的东西。 Greasemonkey 所做的是在页面加载到客户端之后将附加的 javascript 附加到页面。一旦完成,greasemonkey 脚本中的任何 javascript 都可以对 DOM 的内容做任何它想做的事情。您无法在客户端锁定浏览器。例如,这里有一个greasemonkey 脚本来绕过rapidshare 下载延迟,该脚本依赖于只读值来计算启用下载链接之前的剩余时间。 userscripts.org/scripts/show/10380
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    相关资源
    最近更新 更多