| Current Path : /home/zqegovsj/www/us3web.haibo.com.cn/biguo/js/ |
| Current File : /home/zqegovsj/www/us3web.haibo.com.cn/biguo/js/sform.js |
;(function($){
function init(form,o){
var name=$('.name>input',form)
,email=$('.email>input',form)
,submit=$('a[data-type="submit"]',form)
,msg_success=$('.success',form).hide()
,bl,vl
o=$.extend({
ownerEmail:'#'
,mailHandlerURL:'bat/MailHandler-sub.php'
},o)
submit.click(function(){
vl=true
name.add(email).trigger('keyup')
if(!$('.invalid',form).length)
sendRQ()
return false
})
form[form.on?'on':'bind']('keyup',function(e){
if(e.keyCode===13){
name.add(email).data({wtch:true}).trigger('keyup')
if(!$('.invalid',form).length){
sendRQ()
return false
}else{
$('.invalid',form).focus()
}
}
})
name.add(email)
.data({wtch:true})
.each(function(){
var th=$(this)
,val=th.val()
th
.data({defVal:val})
.focus(function(){
if(th.val()==val)
th.val('')
,th.parents('label').removeClass('invalid')
,th.data({wtch:false})
})
.blur(function(){
if(th.val()=='')
th.val(val)
//,th.parents('label').removeClass('invalid')
//else
th.data({wtch:true}).trigger('keyup')
})
})
[name.on?'on':'bind']('keyup',function(e){
var th=$(this)
if(th.data('wtch'))
th.parents('label')[validate(th)?'removeClass':'addClass']('invalid')
})
function validate(el){
var rx={
"text":/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/
,"email":/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i
}
,val=el.val();
(el.parents('label').hasClass('email')) && el.attr({'type':'email'});
return rx[el.attr('type')].test(val)&&val!==el.data('defVal')
}
function sendRQ(){
if(bl)
return false
bl=true
$.ajax({
type:"POST"
,url:o.mailHandlerURL
,data:{
name:name.length?name.val():email.val().split('@')[0]
,email:email.val()
,owner_email:o.ownerEmail
,sitename:o.sitename||o.ownerEmail.split('@')[1]
}
,success:function(e){
bl=false
msg_success
.slideDown(400,function(){
submit.focus()
form.trigger('reset')
name.add(email).data({wtch:true})
setTimeout(function(){
msg_success.fadeOut(400)
},1000)
})
}
})
}
}
$.fn.sForm=function(o){
return this.each(function(){
init($(this),o)
})
}
})(jQuery)
$(window).load(function(){
$('#subscribe-form').sForm({
ownerEmail:'#'
,sitename:'sitename.link'
})
})