Ajax 表单验证 实现代码

2016-02-19 11:32 12 1 收藏

下面是个Ajax 表单验证 实现代码教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - Web开发 】

兼容: opera 9.6 + chrome 2.0 + FF 3 + IE 6
效果:一边输入一边实现验证
image 
环境:ruby 1.8.6 + rails 2.1.0 + windows
核心代码:
html:
浏览器禁用javascript时显示提示信息:
代码如下:

noscript
div style="color:red"您的浏览器不支持javascript,部分功能无法使用/div
/noscript

当浏览器禁用JS后,提交按钮不可用,实现客户端验证!
代码如下:

div id="js_support" style="display:none"
p id="pSubmit"input type="submit" name="registerform" value="注 册" onclick="return submitform();"//p
/div
script type="text/javascript"
$("js_support").style.display = "block";
/script

通过javascript的onfocus和onkeyup实现监听表单域:
input type="text" class="textbox" onfocus="checkLogin(this);" onkeyup="checkLogin(this);" style="width:120px;" /
ajax的自动验证:其中用到一个bp.js,是已经封装好的xmlhttprequest对象的,可以到我下面的项目中下载到
代码如下:

function checkLogin(node) {
clearError();
if (bp.String.trim(node.value)!="") {
var url = "/test/response_validate";
var params = [];
params["command"] = "logincheck";
params["login"] = encodeURI(bp.String.trim(node.value));
var v = validatePath("login",params["login"]);
if (v==""){
bp.Io.XhrGet({
url: url,
mimeType: "text/json",
params: params,
load: function(type, data, e) {
if (data==true){
loginError = document.getElementById("valstatus").innerHTML = '登录名已存在';
document.getElementById("loginValidate").className = "icon_cross";
node.className = "input_error";
loginValid = false;
} else {
loginError = "";
document.getElementById("loginValidate").className = "icon_ok";
node.className = "textbox";
loginValid = true;
}
},
error: function(type, data, e) {}
});
} else {
loginError = document.getElementById("valstatus").innerHTML = v;
document.getElementById("loginValidate").className = "icon_cross";
node.className = "input_error";
loginValid = false
}
} else {
loginError = validatePath("login", "");
document.getElementById("loginValidate").className = "";
node.className = "textbox";
}
}

后台:
这个是rails的后台,通过render :partial返回数据给客户端,当然可以是任何平台下的,例如java平台下的可以用servlet的out.println(...)返回
代码如下:

def response_validate
if params[:login]
name = params[:login]
puts name
if name == "aaaaaa"
@value = true
render :partial = 'show_info'
else
@value = false
render :partial = 'show_info'
end
end
end

完整源码下载:
jsvalidate.rar

来源:https://www.tulaoshi.com/n/20160219/1597826.html

延伸阅读
标签: Web开发
是的,今天我们要实现的效果是.在不刷新网页的情况下读取并显示服务端的数据. 拿出来我们上次准备好的东西. 1:XMLHTTPRequest对象的函数. 2:Asp输出xml格式的文件.你可以点击查看该文件内容 代码如下: % '出自:http://Www.Web666.Net '作者:康董 '如需转载请务必保留以上信息 '定义一个变量,来保存xml数据 dim xml xml...
标签: Web开发
一 、Select jQuery获取Select选择的Text和Value: 1. $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 2. var checkText=$("#select_id").find("option:selected").text(); //获取Select选择的Text 3. var checkValue=$("#select_id").val(); //获取Select选择的Value 4. var checkIndex=$("...
标签: Web开发
代码如下: script type="text/javascript"!-- var request = false; try { request = new XMLHttpRequest(); } catch (trymicrosoft) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { request = false; } } }...
标签: Web开发
JS代码如下。 在调用Ajax返回后。一个奇怪的问题。返回的resultString值是“ok”但是跟字符串"ok"比较确不相等。 Ajax调用out.println()返回的都添加了哪些参数? 放开注释的部分也过滤不掉。 哪位高手遇到过类似的问题。 如何解决的。 请说一下。out.println();返回的到底是个啥。 Js代码 代码如下: // 本地下载 function FTPTest(...
标签: Web开发
一、表单部分 (index.html)     首先是表单填写页面,用一个ID为AutoSaveMsg的DIV来显示返回信息,并且用一个ID为Draft_AutoSave的CheckBox来确定是否进行自动保存,然后将Textarea的ID命名为message。同时为了应对多用户同时使用的需要,加上用户名,每个用户的草稿分开保存。为了说明方便,这里把一些修饰性的东西...

经验教程

404

收藏

78
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部