没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|行业资讯|编辑:龚雪|2014-01-10 10:26:21.000|阅读 123 次
概述:本文将展示如何在客户端使用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@wqylolg.cn
文章转载自:慧都控件网HOOPS 2025 已全面支持 Linux ARM64,助力移动办公、云原生部署及现场边缘工业级3D可视化,实现性能、能耗、成本多维突破,制造、建筑、数字孪生等领域不容错过!
在数字化办公和设计的时代,图纸文件的高效查看、编辑和管理已成为工程师、设计师和团队协作的核心需求。ABViewer作为一款功能强大的CAD图纸处理工具,凭借其广泛的格式支持、精确的测量工具、便捷的标注功能以及高效的打印和转换能力,正逐渐成为众多专业人士的首选工具。
Parasoft Virtualize通过服务虚拟化技术,打破开发与测试之间的瓶颈。它支持多种消息格式和协议,能够快速创建逼真的测试环境,确保软件系统的功能安全与性能卓越,助力企业实现高效、安全的软件开发。
Visual Paradigm是一款全面的项目管理工具,支持敏捷开发、企业架构规划和DevOps全流程。它提供敏捷项目管理、企业架构工具和强大的图表功能,助力团队高效协作,提升开发效率和质量。
主要针对专业级的ASP.NET AJAX开发,拥有构建ASP.NET AJAX和SharePoint应用程序的80+控件。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@wqylolg.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢