1、 启用或禁用表单元素:
html代码:<input type="text" id = "name-input" />
添加一条代码禁用上面的表单:$("#name-inout").attr("disabled",true);
如果要启用表单,则把disabled属性设置成false即可
2、突出显示表单当前项:
html代码:<input type=‘text“ id= ”email-input“ />
CSS样式:.highlight{background:yellow;padding:5px;}
jQuery代码:$('input').bind('focus',function(){
$(this).addClass('highlight');
}); //当input元素得到焦点时,这个输入项就会自动应用highlight类
$('input').bind('blur',function(){
$(this).removeClass('highlight');
}); //当input元素失去焦点时,这个输入项就会移除highlight类
3、为文本框设置默认文本:(1)、html代码:<input type=‘text“ id= ”email-input“ value="Search" />
(2)、创建一个变量,存放计划显示在文本框的默认值:var defaultText ="Search";
(3)、选中#email-input元素。然后绑定focus事件处理函数:
$("#email-input").bind('focus',function(){ });
(4)、在focus事件处理函数中,添加一条if语句检查文本框的值。如果文本框有值并且它的值与defaultText相同,清除文本框的值
$("#email-input").bind('focus',function(){ if($(this).val() == defaultText){
$(this).val(' ');
}
$(this).css('color','#333');
});
(5)、接下来设置#email-input失去焦点时要触发的blur事件。同样需要添加一条if语句检查this的值。如果没有内容,则设置成defaultText。
$("#email-input").bind('blur',function(){ if($(this).val() ==' '){
$(this).val(defaultText);
}
$(this).css('color','#fff');
});
4、限制文本输入框的字数:
(1)、html文档:<textarea cols ="50" rows="5" id= "status"></textarea>
(2)、添加一个空白的div#content元素,用它存放输入字符过程中计算出来的剩余字符数:<div id= "counter"></div>
(3)、新建一个变量maxNum,保存允许输入的最大字符数,这里设置成100:var maxNum=100;
(4)、选中#status元素,然后为它绑定keypress事件处理函数。keypress事件发生于一个键被按下然后释放时,它是检测文本框中用户输入的最佳事件
$('#status').bind({
keypress:function(){
}
});
(5)、当keypress事件发生时,我们需要捕获#status输入框中的内容。创建一个变量inputText保存输入框的值,在创建一个变量numChar保存inputText的length属性。在创建一个变量charRemain,保存剩余字符数
$('#status').bind({
keypress:function(){
var inputText=$(this).val();
var numChar = inputText.length;
var charRemain =numChar-maxNum;
}
});
(6)、初始化这些变量之后,再加一个条件语句检查numChar是否小于等于maxNum。如果小于等于,就选中,并修改它的文本为剩余字符数
$('#status').bind({
keypress:function(){
var inputText=$(this).val();
var numChar = inputText.length;
var charRemain =numChar-maxNum;
if(numChar <=maxNum){
$('#counter').text(charRemain);
}
}
});
(7)、最后再加一条语句检查numChar是否大于maxNum,如果为真,使用event.preventDefault()阻止用户输入更多字符
$('#status').bind({
keypress:function(){
var inputText=$(this).val();
var numChar = inputText.length;
var charRemain =numChar-maxNum;
if(numChar <=maxNum){
$('#counter').text(charRemain);
}
else if(numChar>maxNum){
event.preventDefault();
}
}
});
5、实现复选框的全选功能:
(1)、准备5个复选框元素,并添加一个复选框用来控制5个复选框的选中或反选<input type="checkbox" id="checkall" /> <label>Check all</label> <ul id="form-fields"> <li><input name="check1" class="check" type="checkbox"/> <label>Checkbox 1</label></li> <li><input name="check2" class="check" type="checkbox"/> <label>Checkbox 2</label></li> <li><input name="check2" class="check" type="checkbox"/> <label>Checkbox 3</label></li> <li><input name="check2" class="check" type="checkbox"/> <label>Checkbox 4</label></li> <li><input name="check2" class="check" type="checkbox"/> <label>Checkbox 5</label></li> </ul>
(2)、选中#checkall元素,为它绑定click事件
$('checkall').bind('click',function(){ });
(3)、新建变量checkboxes选中所有li元素并在其中寻找所有.check元素,然后将匹配的结果集保存到变量checkboxes中
$('checkall').bind('click',function(){
var checkboxes = $('form-fields input');
});
(4)、如果还需要取消全选功能,可以加一条if / else语句检查#checkAll元素的状态,选中就保存在checkboxes变量中的复选框结果集中的每一个复选框的checked属性为true,否则就设置为false
$('checkall').bind('click',function(){
var checkboxes = $('form-fields input');
if (this.checked){
checkboxes.attr('checked','true');
} else{
checkboxes.attr('checked','false');
}
});
6、简单验证表单中的电子邮件:
(1)、首先创建一个简单的电子邮件表单,只有一个输入框和一个Submit按钮<div id="email-form"> <input type="text" id="email-input"/> <input type="submit" value="Submit" id="email-submit"/> </div>
(2)、选中#email-submit按钮并为它绑定click事件处理函数。在click事件处理函数中添加一条return false语句,这就确保了用户在单击Submit按钮时,脚本会终止表单默认的提交行为
$(" #email-submit").bind('click', function(){
return false;
});
(3)、创建一个变量emailReg,然后把检测电子合法性的正则表达式赋值给这个新变量:
$(" #email-submit").bind('click', function(){
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
return false;
});
(4)、创建一个email变量,将email-input的值赋给他:
$(" #email-submit").bind('click', function(){
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var email=$("#email-input").val();
return false;
});
(5)、选中email-form元素并在表单内容之前插入一个div.error。使用它存放必要时传递给用户的出错信息
$(" #email-submit").bind('click', function(){
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var email=$("#email-input").val();
$('email-form').prepend('<div class= "error"></div>');
return false;
});
(6)、添加一条else if语句,当用户单击Submit按钮时检查用户是否键入内容
$(" #email-submit").bind('click', function(){
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var email=$("#email-input").val();
$('email-form').prepend('<div class= "error"></div>');
if(email==' '){
} else if{
} else{
}
return false;
});
(7)、在if子句中,选中div.error元素,替换成错误格式信息。else if子句中换成错误格式信息,else子句中告诉用户他们已经成功订阅
$(" #email-submit").bind('click', function(){
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var email=$("#email-input").val();
$('email-form').prepend('<div class= "error"></div>');
if(email==' '){
$(".error").replaceWith('<div class="error">You forgot to enter an email address.</div>');
} else if{
$(".error").replaceWith('<div class="error">Please enter a valid email address.</div>');
} else{
$("#email-form").html('<div class="success">Thank you, you have been subscribed.</div>');
}
return false;
});
下面是改进这个脚本的建议:
(1)、如果希望在用户输入数据时实现实时检测,可以把绑定Submit按钮上的click事件改为绑定到input元素上的change事件。这样的话就要再加一些代码,以保证用户看到正确的提示信息
(2)、若用户提交了错误格式的电子邮件地址,为电子邮件输入框增加突出显示效果
(3)、下面是常用的正则表达式为表单添加更多的字段,验证其他数据类型的数据
电话号码:(/^[0-9-+]+$/)
日期:(/^\d{1,2}\ / \d{4}$/)
仅数字:(^[0-9]+$)
仅字母:(^[A-Za-z]+$)