前两天无事写了个xml+javascript结合页面表单的实例,实际用起来不怎么方便,今天对它进行了改进,不管是从界面显示还是从代码较前好些.但是js加载xml时出现中文乱码,希望高手能提供好的解决办法.目前我只能用英文代替提示信息.
和前面一样xml中的id和表单的id要一样才行.
js代码:
var submitflag=false;
var xmlDoc=null;
function getxmlDoc()
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("../web/js/validator.xml");
if(xmlDoc.parseError.errorCode!=0)
{
var myErr=xmlDoc.parseError;
alert("出错!"+myErr.reason);
}
}
/**
创建一个Div消息提示框
*/
function createDivMessage(e,strHtml){
var div=document.getElementById("divMsg");
if(div!=null){
document.body.removeChild(div);
}
var object=e;
var div=document.createElement('div');
div.id="divMsg";
div.style.position = "absolute";
var ttop=object.offsetTop+object.offsetHeight;
var tleft=object.offsetLeft+object.offsetWidth;
while(object=object.offsetParent){ttop+=object.offsetTop;tleft+=object.offsetLeft;}
div.style.top=ttop;
div.style.left=tleft;
div.style.width= 250;
div.style.height=64;
div.style.background="url(../web/images/userimages/message.PNG)";
div.innerHTML=strHtml;
document.body.appendChild(div);
}
window.onload=roadXml;
/**
加载脚本验证配置的Xml文件
*/
function roadXml(){
getxmlDoc();
var nodeList=xmlDoc.selectSingleNode("form").childNodes;
var str="";
for(var i=0;i<nodeList.length;i++){
var id=nodeList[i].getAttribute('id');
var startLength=nodeList[i].getAttribute('startLength');
var lastLength=nodeList[i].getAttribute('lastLength');
var expression=nodeList[i].getAttribute('expression');
var errorNull=nodeList[i].getAttribute('errorNull');
var errorFormat=nodeList[i].getAttribute('errorFormat');
var errorLength=nodeList[i].getAttribute('errorLength');
var trueMessage=nodeList[i].getAttribute('trueMessage');
validatorMethod(id,startLength,lastLength,expression,errorNull,errorFormat,errorLength,trueMessage);
}
}
window.setInterval("removeTag()",5000);
function removeTag(){
var div=document.getElementById("divMsg");
if(div!=null){
document.body.removeChild(div);
}else{
}
}
/**
失去焦点触发
*/
function validatorMethod(id,startLength,lastLength,expression,errorNull,errorFormat,errorLength,trueMessage){
var object=document.getElementById(id);
object.onblur = function(){
var lengthFlag=validatorLength(object,startLength,lastLength);
var formatFlag=validatorFormat(object,expression);
var message="";
switch(lengthFlag){
case "0":message+="<font color='red'>"+errorNull;
break;
case "1":message+="<font color='red'>"+errorLength;
break;
case "2":
if(formatFlag){
message+="<font color='green'>"+trueMessage;
submitflag=true;
}else{
message+="<font color='red'>"+errorFormat;
}
break;
}
createDivMessage(object,message);
};
}
/**
验证长度
*/
function validatorLength(e,startL,lastL){
var object = e;
var valueLength=(object.value).length;
if(valueLength==0){
return "0";
}
if(valueLength>lastL||valueLength<startL){
return "1";
}else{
return "2";
}
}
/**
验证格式
*/
function validatorFormat(e,expr){
var object=e;
if(expr==""){
return true;
}else{
if(object.value.match(expr)!=null){
return true;
}else{
return false;
}
}
}
/**
提交前检验数据是否合法
*/
function checkFlagSubmit(){
return submitflag;
}
xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<form>
<element id='userEmail'
startLength='8'
lastLength='30'
expression='\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*'
errorNull='Not is empty!'
errorFormat='Email format error!'
errorLength='Email the length should be 8~20!'
trueMessage='Email format true!'
/>
<element id='userName'
startLength='2'
lastLength='10'
expression=''
errorNull='Not is empty!'
errorFormat='userName format error!'
errorLength='userName the length should be 2~10!'
trueMessage='userName format true!'
/>
<element id='userMobile'
startLength='10'
lastLength='12'
expression='^(13|15)[0-9]{9}$'
errorNull='Not is empty!'
errorFormat='userMobile format error!'
errorLength='userMobile the length should be 10~12!'
trueMessage='userMobile format true!'
/>
<element id='userPassword'
startLength='6'
lastLength='12'
expression=''
errorNull='Not is empty!'
errorFormat='userPassword format error!'
errorLength='userPassword the length should be 6~12!'
trueMessage='userPassword format true!'
/>
<element id='userBorn'
startLength='6'
lastLength='12'
expression='^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$'
errorNull='Not is empty!'
errorFormat='userBorn format error!'
errorLength='userBorn the length should be 6~12!'
trueMessage='userBorn format true!'
/>
<element id='hometel'
startLength='10'
lastLength='13'
expression='(^(\d{2,4}[-_-—]?)?\d{3,8}([-_-—]?\d{3,8})?([-_-—]?\d{1,7})?$)|(^0?1[35]\d{9}$)'
errorNull='Not is empty!'
errorFormat='HomeTelphone format error!'
errorLength='HomeTelphone the length should be 10~13!'
trueMessage='HomteTelpone format true!'
/>
<element id='officetel'
startLength='10'
lastLength='13'
expression='(^(\d{2,4}[-_-—]?)?\d{3,8}([-_-—]?\d{3,8})?([-_-—]?\d{1,7})?$)|(^0?1[35]\d{9}$)'
errorNull='Not is empty!'
errorFormat='OfficeTelphone format error!'
errorLength='OfficeTelphone the length should be 10~13!'
trueMessage='OfficeTelpone format true!'
/>
<element id='userQQ'
startLength='4'
lastLength='11'
expression='[1-9][0-9]{4,}'
errorNull='Not is empty!'
errorFormat='QQ format error!'
errorLength='QQ the length should be 4~11!'
trueMessage='QQ format true!'
/>
</form>
html表单:
<table border="0" style="width:80%;">
<tr style="padding-top:1px;">
<td align="right">电子邮箱:</td>
<td align="left"><input type="text" id="userEmail" name="users.userEmail"/></td>
<td colspan="2" style="width:200px" align="left"></td>
</tr>
<tr style="padding-top:1px;">
<td align="right">真实姓名:</td>
<td align="left"><input type="text" id="userName" name="users.userName"/></td>
<td colspan="2" style="width:200px" align="left"></td>
</tr>
<tr style="padding-top:1px;">
<td align="right">用户手机:</td>
<td align="left"><input type="text" id="userMobile" name="users.userMobile"/></td>
<td colspan="2" style="width:200px" align="left"></td>
</tr>
- 大小: 71.3 KB
分享到:
相关推荐
在Web开发中,XML常用于数据交换、配置文件或者作为JSON的替代方案。 提供的压缩包中的文件名暗示了学习资源的类别。例如: - "Script大全.CHM" 可能包含JavaScript和DHTML的相关教程。 - "HTML教程.chm" 应该涵盖...
XML(可扩展标记语言)是用于存储和传输数据的标准格式,特别是在Web服务和配置文件中。XMLTools插件为Notepad++增加了许多实用的XML处理功能,如验证、格式化、折叠、查找和替换XPath表达式等。要安装此插件,你...
5. **服务器端处理**:探讨ASP如何处理用户请求,例如验证用户输入、查询数据库等,然后将结果封装成XML返回给Flash。 6. **文件"exw"**:这个文件可能是扩展名为.exw的文件,通常与某些特定的应用程序或格式关联,...
【JSP+XML打造的简易论坛】是一种利用JavaServer Pages(JSP)技术和XML(Extensible Markup Language)来构建的在线讨论平台。这种技术组合在早期的Web开发中较为常见,因为XML可以作为轻量级的数据存储方式,而JSP...
在ASP.NET应用中,XML常用于配置文件、数据持久化以及Web服务的数据传输。通过XPath、XSLT和LINQ to XML等技术,开发者可以方便地操作和处理XML文档。 CSS(Cascading Style Sheets)则是用于描述HTML或XML(包括...
Notepad++提供了一款名为XML Tools的插件,它可以对XML进行格式化、验证和操作。 1. 安装XML Tools插件: - 首先,访问Notepad++的官方插件仓库(https://sourceforge.net/projects/npp-plugins/),找到XML Tools...
XML(Extensible Markup Language)和JavaScript是Web开发中两种重要的技术。XML是一种标记语言,用于存储和传输结构化数据,而JavaScript则是一种客户端脚本语言,用于为网页添加交互性。在“xml+js省市级联”这个...
**Asynchronous JavaScript + XML (AJAX)** AJAX,全称异步JavaScript和XML,是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它的核心是利用JavaScript与服务器进行交互,通过XML或者其他数据格式获取...
**AJAX(Asynchronous JavaScript and XML)** AJAX不是一种单一的技术,而是一种利用JavaScript实现局部刷新的Web开发技术。它允许在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。PHP与AJAX结合,...
4. 在验证XML文件时,确保XML文件的语法正确,否则可能导致验证失败。 5. 如果遇到插件使用问题,可以查阅插件的帮助文档或在线社区寻求帮助。 总的来说,Note++结合JSONViewer和XMLTools插件,为开发者提供了强大...
基于XML配置的JS(JavaScript)验证方式是将XML文件作为配置源,来定义和管理前端表单验证规则的一种技术。这种方式可以帮助开发者更加灵活地管理和维护表单验证逻辑,同时降低代码耦合度。 首先,我们来详细理解...
在ASP中,服务器端脚本处理动态内容,而XML可能用于存储和传递数据,JavaScript则用于客户端的页面交互和数据验证。 【标签】"asp" 指出这个项目的核心技术是ASP,这是一种微软开发的服务器端脚本环境,用于生成...
在这个项目中,JavaScript可能被用于增强用户界面,比如提供动态查询条件的输入验证、实时预览查询结果,甚至构建AJAX(Asynchronous JavaScript and XML)无刷新的查询体验。JS与ASP.NET结合,可以在服务器端处理...
5. chat.php接收到XML数据,解码并处理,可能包括验证、存储消息到数据库等操作。 6. PHP将处理结果再次封装成XML,返回给Flash。 7. Flash接收到响应的XML,更新聊天窗口显示新的消息。 在提供的文件列表中,CHAT....
例如,当用户输入消息并按下发送按钮时,JavaScript会捕获这个事件,对输入进行验证,然后将消息封装成Ajax请求发送到服务器。 **Ajax** 技术使得JavaScript可以与服务器进行异步通信,无需刷新整个页面就能获取或...
1. XML配置文件常见于各种框架和应用中,如Spring框架的bean定义、Web服务的WSDL描述等。 2. 配置文件通常包含元素、属性和注释,通过结构化的方式来设置应用参数。 3. 解析XML配置文件时,需要关注特定的根元素、...
XML是一种用于存储和传输结构化数据的标准格式,常用于数据交换、配置文件和API响应。JavaScript通过DOM(Document Object Model)API来解析和操作XML文档。 1. **XML解析**:JavaScript可以使用`DOMParser`对象将...
2. XML Schema和DTD:讨论XML Schema和Document Type Definition(DTD)这两种验证XML文档结构的方法,以及它们如何确保数据的一致性和完整性。 3. E4X语法:讲解E4X如何让JavaScript与XML无缝对接,包括XML对象的...
2. **DWR配置**:DWR需要在服务器端进行配置,以便允许特定的Java方法被JavaScript调用。这通常涉及到创建DWR接口类、映射文件(如dwr.xml)以及相关的安全设置。 3. **数据库连接**:后端服务器需要连接到数据库,...