在一个比如表单验证的过程中,有时候,假如要用户一定要输入某个字段,否则不给输入
其他字段,即屏蔽其他字段的输入,这个时候依然可以用jquery可以做到,例子如下:
1 假如页面有三个字段,用户名和密码和密码确认三个字段:
<form>
<div>
<span class="label">User Name </span>
<input type="text" class="username" name="username"/>
<span class="error"> User name cannot be blank</span>
</div>
<div>
<span class="label">Password </span>
<input type="password" class="password" name="password" />
<span class="error"> Password cannot be blank</span>
</div>
<div>
<span class="label">Confirm Password </span>
<input type="password" class="confpass" name="confpass" />
<span class="error"> Password and Confirm Password don't match</span>
</div>
</form>
2 jquery中的脚本设置
- $(document).ready(function() {
- $('.error').hide();
- $('.username').blur(function(){
- data=$('.username').val();
- var len=data.length;
- if(len<1)
- {
- $('.username').next().show();
- $('.password').attr('disabled',true);
- $('.confpass').attr('disabled',true);
- }
- else
- {
- $('.username').next().hide();
- $('.password').removeAttr('disabled');
- $('.confpass').removeAttr('disabled');
- }
- });
- $('.password').blur(function(){
- data=$('.password').val();
- var len=data.length;
- if(len<1)
- {
- $('.password').next().show();
- $('.confpass').attr('disabled',true);
- }
- else
- {
- $('.password').next().hide();
- $('.confpass').removeAttr('disabled');
- }
- });
- $('.confpass').blur(function(){
- if($('.password').val() !=$('.confpass').val())
- {
- $('.confpass').next().show();
- }
- else
- {
- $('.confpass').next().hide();
- }
- });
- });
$(document).ready(function() {
$('.error').hide();
$('.username').blur(function(){
data=$('.username').val();
var len=data.length;
if(len<1)
{
$('.username').next().show();
$('.password').attr('disabled',true);
$('.confpass').attr('disabled',true);
}
else
{
$('.username').next().hide();
$('.password').removeAttr('disabled');
$('.confpass').removeAttr('disabled');
}
});
$('.password').blur(function(){
data=$('.password').val();
var len=data.length;
if(len<1)
{
$('.password').next().show();
$('.confpass').attr('disabled',true);
}
else
{
$('.password').next().hide();
$('.confpass').removeAttr('disabled');
}
});
$('.confpass').blur(function(){
if($('.password').val() !=$('.confpass').val())
{
$('.confpass').next().show();
}
else
{
$('.confpass').next().hide();
}
});
});
原理其实很简单,比如这里,在每个文本框的onblur事件中进行判断,先看用户框
中的是否输入和长度是否匹配,如果不符合要求的话,则$('.username').next().show();
这句,其实是显示下一个元素(即出错信息提示,即<span class="error"> User name cannot be blank</span>
)
并且同时$('.password').attr('disabled',true);
$('.confpass').attr('disabled',true);
将其他字段的disabled属性设置为TRUE即可.
当然,要是输入了的话,也要重新设置回来,道理就这么简单了