没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|行业资讯|编辑:龚雪|2014-01-10 10:26:51.000|阅读 160 次
概述:本文将展示如何在客户端使用JavaScript校验AJAX组合框以及如何在一个div位置属性中管理下拉列表。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
背景:
点击下载
工作中可能会出现必须用AJAX ComboBox(组合框)替代ASP.NET的下来列表控制。使用组合框,一切运行良好,直到开始校验它,然后我们尝试用chrome提供的开发者工具调试,由此得知组合框是如何形成的。基本上是由如下三个控制所组成:
起初列表框控制都是隐藏的,当我们点击按钮以提供下拉菜单效果时它才显示。
然后我们尝试使用JavaScript并传送组合框客户ID给JavaScript并检查其值,依然不能校验组合框,因为我得到了无效值异常。
在使用一些试用方法,我们即获得一个解决方案,所用代码如下:
function validateCombobox() { var comboboxId = document.getElementById('<%=ComboBox1.ClientId%>_TextBox'); if (comboboxId.value != null && comboboxId.value != "") { alert(comboboxId.value); } else { alert("null value"); } }
从上述代码你能够判断我们是试图获得组合框的文本框控制(它负责显示选中值并为进一步的用户代码创建同样的可用值。
但是当我们在继承masterpage的页面使用它,然后HTML就不一样了,这个方法就不够可靠了。你可以通过查看你的源代码来核实。因此我们的function需要如下改变:
function validateCombobox() {
var comboboxId = document.getElementById('<%=ComboBox1.ClientId%>_ComboBox1_TextBox'); if (comboboxId.value != null && comboboxId.value != "") { alert(comboboxId.value); } else { alert("null value"); } }
这才是真正的问题。若不想写两个不同的functio来执行同样的任务,则可以用如下代码:
function validateCombobox() {
var id = document.getElementById('<%=ComboBox1.ClientID %>'); var inputs = id.getElementsByTagName('input'); var i; for (i = 0; i < inputs.length; i++) { if (inputs[i].type == 'text') { if (inputs[i].value != "" && inputs[i].value != null) alert(inputs[i].value); else alert("null value"); break; } } }
在上述代码中你可以看到我们在JavaScript中用其客户ID获得控制。然后会发现所有TagName input控制都会出现在那个自定义控制中。现在我们运行一个循环来找到文本框并比较其值(无论它是否无效)。
同样地,你可以检查你想要在客户端用JavaScript处理组合框的其它值或任务。
在解决这个之后,会看到一个新的问题——当在一个div位置属性使用它时,我们看到列表框不在组合框的文本框控制下面。在搜索之后我们得知问题在于div包含含有位置属性的组合框。因此当我们移除位置属性,一切都运转正常了。
组合框的列表框有内联样式表,包含position:absolute属性。
但为了设置页面布局,有必要使用位置属性。
之后我们发现,如果能够从absolute到fixed覆盖位置属性,任务就能完成。我们可以为同一的目的用position:static。
在搜索后会发现组合框有如下内置供我们覆盖:
为此我们用如下代码:
.combo{
//your style } .combo .ajax__combobox_itemlist{ position : static !important; }
在上述代码中我们已经创建了一个类名称组合以便覆盖项目列表类的位置属性。
我们都知道,内联样式表有更高的优先级并省去了所有矛盾的属性,它们最终被应用,最后的样式属性覆盖所有值钱匹配的属性。
因此我们用!important规则,通过给样式表指定更高的优先级来帮助覆盖样式表的内联样式属性。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@obta.cn
文章转载自:慧都控件网在自动化GUI测试领域,面对日益复杂的动态Web界面和频繁变化的软件控件,传统的单一对象识别技术和脆弱易碎的测试脚本已成为效率提升的主要瓶颈。Web测试工具TestComplete通过完整的对象识别引擎以及AI驱动的自我修复来降低维护成本,保障大规模自动化测试套件的长期可靠运行。本文将介绍这些技术以及其在实际场景中的应用。
还在为脆弱的测试环境、强外部依赖和低效的测试复用拖慢交付而头疼?尤其在银行、医疗、制造等关键领域,传统的端到端测试常因环境不稳、接口难模拟、用例难共享而举步维艰。灰盒级SOA测试工具Parasoft SOAtest以可视化编排简化复杂测试流程,用环境虚拟化消除外部依赖,更通过组件复用实现跨国测试资产共享,让端到端测试从被动排查转变为主动防御。
作为面向工程软件开发者的高级渲染解决方案,HOOPS Luminate将先进的实时渲染与物理级光线追踪完美结合,助力开发团队打造超越预期的视觉体验与交互性能。
HOOPS SDK产品组合为船舶及海工软件提供从CAD数据访问、可视化到跨平台协作的全流程支持。
主要针对专业级的ASP.NET AJAX开发,拥有构建ASP.NET AJAX和SharePoint应用程序的80+控件。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@obta.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢