login placeholder
$(function(){
function isPlaceholder(){
var input = document.createElement('input');
return 'placeholder' in input;
}
if(!isPlaceholder()){
$("input").not("input[type='password']").each(//把input绑定事件 排除password框
function(){
if($(this).val()=="" && $(this).attr("placeholder")!=""){
$(this).val($(this).attr("placeholder"));
$(this).focus(function(){
if($(this).val()==$(this).attr("placeholder")) $(this).val("");
});
$(this).blur(function(){
if($(this).val()=="") $(this).val($(this).attr("placeholder"));
});
}
});
//对password框的特殊处理1.创建一个text框 2获取焦点和失去焦点的时候切换
function removeInput(ele){
var ele = $('.'+ele);
var pwdField = ele.find("input[type=password]");
var pwdVal = pwdField.attr('placeholder');
pwdField.after('<input class="input pwdPlaceholder" type="text" value='+pwdVal+' autocomplete="off" />');
var pwdPlaceholder = ele.find('.pwdPlaceholder');
pwdPlaceholder.show();
pwdField.hide();
pwdPlaceholder.focus(function(){
pwdPlaceholder.hide();
pwdField.show();
pwdField.focus();
});
pwdField.blur(function(){
if(pwdField.val() == '') {
pwdPlaceholder.show();
pwdField.hide();
}
});
}
removeInput('loginBox');
removeInput('registerBox');
}
$.getScript('http://static.m1905.cn/passport/js/emailsuggest.js',function(){
var arr = [ '163.com',
'126.com',
'qq.com',
'yahoo.com.cn',
'gmail.com',
'sohu.com',
'hotmail.com' ,
'sina.com',
'139.com'
];
new $.ui.EmailSuggest( '#mail_reg', {
data : arr
});
new $.ui.EmailSuggest( '#mail_sug', {
data : arr
});
})
var validateAPI = 'http://passport.1905.com/v2/api/',
passBoxTag = $('<span class="msg-box"><i class="icons pass"><em class="arr"></em></i></span>'),
failBoxTag = $('.registerBox .error');
var InterValObj; //timer变量,控制时间
var count = ; //间隔函数,1秒执行
var curCount;//当前剩余秒数
$.register = {};
$.register = {
rEmail : /^\w+((\.\w+)|(-\w+))*\@[a-zA-Z0-]+((\.|-)[a-zA-Z0-]+)*\.[a-zA-Z0-]+$/,
rPhone : /^(^[|]\d{}$)|(^[]\d{}$)|(^[]\d{}$)|(^[]\d{}$)$/,
rUsername : /^[\.a-zA-Z0-9_-]{,}$/,
rsmscode : /\d{}/,
trim : /\s*/,
rPassword : {
digital: /\d+/,
lowercase: /[a-z]+/,
uppercase: /[A-Z]+/,
symbols: /[_!@#\$%\^&\*\(\)\\\|\/\?\.\<\>'"\{\}\[\]=\-\~\,\;\:]+/,
password: /^[a-zA-Z0-9_!@#\$%\^&\*\(\)\\\|\/\?\.\<\>'"\{\}\[\]=\-\~\,\;\:\s]+$/,
mobile_verify: /^\d$/
},
checkEmailorPhone : function (){ //验证邮箱手机号
var flag = "";
$('.registerBox .error').html("");
$('.registerBox .emailormobile').next('.msg-box').remove();
if($('.ecope_emailsuggest li.current').length > ){
EmailorPhoneValue = $('.ecope_emailsuggest li.current').text();
$('.registerBox .emailormobile').val(EmailorPhoneValue);
$('.ecope_emailsuggest li.current').removeClass('current');
}else{
EmailorPhoneValue = $('.registerBox .emailormobile').val();
}
$('.registerBox .emailormobile').removeAttr('data-type');
if(!$.register.rEmail.test(EmailorPhoneValue) && !$.register.rPhone.test(EmailorPhoneValue)){
if(/\s+/.test(EmailorPhoneValue)){
failBoxTag.html('<em class="icons fail"></em>输入框存在空格,请您重新输入');
}else{
failBoxTag.html('<em class="icons fail"></em>请输入正确的手机号或邮箱');
flag = ;
}
}else if($.register.rPhone.test(EmailorPhoneValue)){
$.ajax({
url:validateAPI,
data : {m : 'user',a : 'checkEmailOrmobile' , format : 'json',emailormobile : EmailorPhoneValue},
dataType: 'jsonp',
//jsonpCallback : 'callback',
async:false,
success:function(data){
if(data.status == ){
failBoxTag.html('<em class="icons fail"></em>手机号已经被注册,可<a href="javascript:void(0)" class="quick-login">直接登录</a>');
$('.registerBox .password').unbind('blur');
$('.registerBox .registerCode').unbind('blur');
}else{
$('.registerBox .emailormobile').siblings('.msg-box').remove();
passBoxTag.appendTo($('.emailormobile').parent('fieldset'));
$('.ecope_emailsuggest').hide();
$('.registerBox .emailormobile').attr('data-type',true);
$('#smsCode').slideDown();
}
}
});
}else if($.register.rEmail.test(EmailorPhoneValue)){
$('#smsCode').slideUp();
$.ajax({
url:validateAPI,
data : {m : 'user',a : 'checkEmailOrmobile' , format : 'json',emailormobile : EmailorPhoneValue},
dataType: 'jsonp',
//jsonpCallback : 'callback',
async:false,
success:function(data){
if(data.status == ){
failBoxTag.html('<em class="icons fail"></em>邮箱已经被注册,可<a href="javascript:void(0)" class="quick-login">直接登录</a>');
$('.registerBox .password').unbind('blur');
$('.registerBox .registerCode').unbind('blur');
}else{
$('.registerBox .emailormobile').siblings('.msg-box').remove();
passBoxTag.appendTo($('.emailormobile').parent('fieldset'));
$('.ecope_emailsuggest').hide();
$('.registerBox .emailormobile').attr('data-type',true);
mobilecodeValue = $('.registerBox .mobilecode').val() == '';
}
}
});
}
},
checkPassword : function(){ //验证密码
$('.emailormobile').trigger('blur');
failBoxTag.html("");
passwordValue = $('.registerBox .password').val();
$('.registerBox .password').removeAttr('data-type');
if(passwordValue.length == ){
failBoxTag.html('<em class="icons fail"></em>密码不能为空');
}else if(passwordValue.length < ){
$(".registerBox .password").trigger('keyup');
$('.registerBox .password').next('.msg-box').remove();
failBoxTag.html('<em class="icons fail"></em>输入密码至少6位');
}else if(passwordValue.length > ){
failBoxTag.html('<em class="icons fail"></em>密码不能超过16位');
}else if(/\s+/.test(passwordValue)){
failBoxTag.html('<em class="icons fail"></em>输入框存在空格,请您重新输入');
$('.registerBox .password').next('.msg-box').remove();
}else{
$('.registerBox .password').attr('data-type',true);
}
},
checkPassWord_strong : function(){ //检测密码强度
passwordValue = $('.registerBox .password').val();
var value = $.trim(passwordValue), b = , msg ="";
switch ($.register.rPassword.digital.test(value) && b++, $.register.rPassword.lowercase.test(value) && b++, $.register.rPassword.uppercase.test(value) && b++, $.register.rPassword.symbols.test(value) && b++, b) {
case :
msg = '<i class="icons safe week"> 弱 </i>';
break;
case :
msg = '<i class="icons safe normal"> 中 </i>';
break;
case :
msg = '<i class="icons safe strong"> 强 </i>';
break;
}
$('.registerBox .password').siblings('.msg-box').remove();
$('<span class="msg-box">'+ msg +'</span>').appendTo($('.registerBox .password').parent('fieldset'));
return '';
},
changeverify : function(imgID){ //刷新图片验证码
var url = 'http://passport.1905.com/v2/api/?m=seccodech&a=display&rand=';
$('#'+imgID).attr('src', url + new Date().getTime());
},
checkSecCode : function(ele){ //图片验证码
$('.emailormobile').trigger('blur');
$('.'+ele).find('.error').html("");
$('.'+ele).find('.vcode').next('.msg-box').remove();
secCodeValue = $('.'+ele).find('.vcode').val();
$('.'+ele).find('.vcode').removeAttr('data-type');
$.ajax({
url:validateAPI,
data : {m : 'user',a : 'checkseccode' , format : 'json',seccode : secCodeValue},
dataType: 'jsonp',
//jsonpCallback : 'callback',
success:function(data){
if(data.status == ){
$('.'+ele).find('.vcode').siblings('.msg-box').remove();
$('<span class="msg-box"><i class="icons pass"><em class="arr"></em></i></span>').appendTo($('.'+ele).find('.vcode').parent('fieldset'));
$('.registerBox .vcode').attr('data-type',true);
}else{
$('.'+ele).find('.vcode').siblings('.msg-box').remove();
$('.'+ele).find('.error').html('<em class="icons fail"></em>验证码错误');
}
}
})
},
checkSecCodeone : function(ele){ //图片验证码
$('.'+ele).find('.error').html("");
$('.'+ele).find('.vcode').next('.msg-box').remove();
secCodeValue = $('.'+ele).find('.vcode').val();
$('.'+ele).find('.vcode').removeAttr('data-type');
$.ajax({
url:validateAPI,
data : {m : 'user',a : 'checkseccode' , format : 'json',seccode : secCodeValue},
dataType: 'jsonp',
//jsonpCallback : 'callback',
success:function(data){
if(data.status == ){
$('.'+ele).find('.vcode').siblings('.msg-box').remove();
$('<span class="msg-box"><i class="icons pass"><em class="arr"></em></i></span>').appendTo($('.'+ele).find('.vcode').parent('fieldset'));
$('.registerBox .vcode').attr('data-type',true);
}else{
$('.'+ele).find('.vcode').siblings('.msg-box').remove();
$('.'+ele).find('.error').html('<em class="icons fail"></em>验证码错误');
}
}
})
},
SetRemainTime : function() {
if (curCount == ) {
window.clearInterval(InterValObj);
$("#issuedSMS").removeAttr("disabled");
$("#issuedSMS").val("重新发送验证码");
code = "";
}
else {
curCount--;
$("#issuedSMS").val(curCount + "秒后重新发送");
}
},
//下发短信事件
getmobileCode : function() {
curCount = count;
if(EmailorPhoneValue != "" && $.register.rPhone.test(EmailorPhoneValue)){
}else{
failBoxTag.html('<em class="icons fail"></em>手机号码不能为空');
$('.emailormobile').trigger('focus');
return false;
}
//判断是否填写验证码
var ele='registerBox';
$('.'+ele).find('.error').html("");
$('.'+ele).find('.vcode').next('.msg-box').remove();
secCodeValue = $('.'+ele).find('.vcode').val();
$('.'+ele).find('.vcode').removeAttr('data-type');
$.ajax({
url:validateAPI,
data : {m : 'user',a : 'checkseccode' , format : 'json',seccode : secCodeValue},
dataType: 'jsonp',
//jsonpCallback : 'callback',
success:function(data){
if(data.status == ){
$('.'+ele).find('.vcode').siblings('.msg-box').remove();
$('<span class="msg-box"><i class="icons pass"><em class="arr"></em></i></span>').appendTo($('.'+ele).find('.vcode').parent('fieldset'));
$('.registerBox .vcode').attr('data-type',true);
$("#issuedSMS").attr("disabled", "true");
$("#issuedSMS").val(curCount + "秒后重新发送");
InterValObj = window.setInterval($.register.SetRemainTime, ); //启动计时器,1秒执行一次
$.ajax({
url:validateAPI,
data : {m : 'acode',a : 'sendmobile' , mobile : EmailorPhoneValue, seccode : secCodeValue},
dataType: 'jsonp',
success:function(data){
if(data.status == ){
$('.registerBox .vcode').attr('data-type','false');//重置验证码状态
$.register.changeverify('img_reg_code');//刷新验证码
alert('短信已发送'+data.info);
}else{
alert(data.info);
}
}
})
}else{
$('.'+ele).find('.vcode').siblings('.msg-box').remove();
$('.'+ele).find('.error').html('<em class="icons fail"></em>验证码错误');
}
}
})
//secCodeValue = $('.registerBox').find('.vcode').val();
/*
if(EmailorPhoneValue != "" && $.register.rPhone.test(EmailorPhoneValue)){
$("#issuedSMS").attr("disabled", "true");
$("#issuedSMS").val(curCount + "秒后重新发送");
InterValObj = window.setInterval($.register.SetRemainTime, 1000); //启动计时器,1秒执行一次
$.ajax({
url:validateAPI,
data : {m : 'acode',a : 'sendmobile' , mobile : EmailorPhoneValue, seccode : secCodeValue},
dataType: 'jsonp',
success:function(data){
if(data.status == 200){
$('.registerBox .vcode').attr('data-type','false');//重置验证码状态
$.register.changeverify('img_reg_code');//刷新验证码
alert('短信已发送'+data.info);
}else{
alert(data.info);
}
}
})
}else{
failBoxTag.html('<em class="icons fail"></em>手机号码不能为空');
$('.emailormobile').trigger('focus');
}
*/
},
checkSmsCode : function(){//短信验证码
failBoxTag.html("");
$('.registerBox .mobilecode').next('.msg-box').remove();
mobilecodeValue = $('.registerBox .mobilecode').val();
$('.registerBox .mobilecode').removeAttr('data-type');
if(mobilecodeValue.length == ){
failBoxTag.html('<em class="icons fail"></em>手机验证码不能为空');
return false;
}else{
$.ajax({
url:validateAPI,
data : {m : 'acode',a : 'check' , mobile : EmailorPhoneValue, acode : mobilecodeValue},
dataType: 'jsonp',
success:function(data){
if(data.status == ){
$('.registerBox .mobilecode').siblings('.msg-box').remove();
passBoxTag.appendTo($('.mobilecode').parent('fieldset'));
$('.registerBox .mobilecode').attr('data-type',true);
}else{
failBoxTag.html('<em class="icons fail"></em>手机验证码错误');
}
}
})
}
},
checkAgreement : function (){//同意协议
failBoxTag.html("");
if (!$('.agree').is(":checked")) {
$('.registerBox .agree').removeAttr('data-type');
failBoxTag.html('<em class="icons fail"></em>同意后才能注册');
}else{
$('.registerBox .agree').attr('data-type',true);
}
}
}//register end
$(document).on('click','.quick-login, .mar-login a', function(){
$('.tag li').eq().addClass('active').siblings('li').removeClass('active');
$('.loginBox').addClass('active').siblings('.registerBox').removeClass('active');
}).on('click','#img_reg_code', function(){
$.register.changeverify('img_reg_code');
}).on('click','#img_login_code', function(){
$.register.changeverify('img_login_code');
}).on('click','.tag li', function(){
var nIndex = $(this).index();
$(this).addClass('active').siblings('li').removeClass('active');
$('.passContent').eq(nIndex).addClass('active').siblings().removeClass('active').find('input').empty();
$('.nav-header').eq(nIndex).addClass('active').siblings('.nav-header').removeClass('active');
}).on('click','#issuedSMS',function(){
//下发短信
$.register.getmobileCode();
}).on('keydown','.password',function(event){
if ((event.ctrlKey&&event.which==) || (event.ctrlKey&&event.which==)) {
return false;
}
}).on('keydown','.loginBox .input',function(event){
if(event.keyCode == ){
$('.loginBox .submit').trigger('click');
}
}).on('keydown','.registerBox .input',function(event){
if(event.keyCode == ){
$('.registerBox .submit').trigger('click');
}
});
$(".registerBox .emailormobile").blur(function(){
// var text = $(this).val().toLowerCase();
// $(this).val(text);
$.register.checkEmailorPhone();
});
$(".registerBox .password").keyup(function(){$.register.checkPassWord_strong();})
$(".registerBox .password").blur(function(){$.register.checkPassword();})
$(".registerBox .vcode").blur(function(){$.register.checkSecCode('registerBox');})
$(".registerBox .mobilecode").blur(function(){$.register.checkSmsCode();})
$('.registerBox .agree').click(function(){ $.register.checkAgreement();})
$(".loginBox .vcode").blur(function(){$.register.checkSecCode('loginBox');})
$('.registerBox .submit').click(function(){
var flagTag =,
eleLi = $(".registerBox li.normal:visible"),
eleLilength = eleLi.length;
eleLi.each(function(){
if($(this).find("input").eq().attr("data-type")){
flagTag++;
}else{
$(this).find("input").eq().trigger("blur");
return false;
}
});
if(eleLilength==flagTag){
$.ajax({
url:validateAPI,
data : {m : 'user',a : 'register_v2' , format : 'json', emailormobile : EmailorPhoneValue, acode : mobilecodeValue , password: passwordValue , seccode:secCodeValue },
dataType: 'jsonp',
//jsonpCallback : 'callback',
success:function(data){
if(data.status == ){
backUrl = getRequest('callback_url') || "http://"+window.location.host;
top.location.href = backUrl;
}
}
})
}
});
$.login = {};
$.login = {
errorTimes : $('#code_error_max').val() || ,
def_vcode : '请输入验证码',
rPhone : /^(^[|]\d{}$)|(^[]\d{}$)|(^[]\d{}$)|(^[]\d{}$)$/,
rUsername : /^[\.a-zA-Z0-9_-]{,}$/,
rEmail : /^\w+((\.\w+)|(-\w+))*\@[a-zA-Z0-]+((\.|-)[a-zA-Z0-]+)*\.[a-zA-Z0-]+$/,
err_uname : '请检查通行证格式',
err_empty : '请填写通行证',
err_upass : '请输入密码',
err_vcode : '验证码不能为空',
init : function(){
// 验证码
if( $.login.errorTimes > ) {
$('.seccode').val( $.login.def_vcode );
$('.loginBox .vcode').show();
}
},
// 验证表单提交数据
checkForm : function(){
var value = $('.username').val();
var upass = $('.loginBox .password').val();
var vcode = $('#code').val();
var testVal = value.replace(/[^\x00-\xff]/g, 'mm'),
unLen = testVal.length;
if (unLen == ) {//请填写通行证
$.login.showMsg( $.login.err_empty );
return false;
}
if (!$.login.rPhone.test(testVal) && !$.login.rEmail.test(testVal) && !$.login.rUsername.test(testVal)) { // 请检查通行证格式
$.login.showMsg( $.login.err_uname );
return false;
} else if( upass.length == ) {//请输入密码
$.login.showMsg( $.login.err_upass );
return false;
} else if( $.login.errorTimes > ) {
if( vcode == '' || vcode == $.login.def_vcode ){
$.login.showMsg( $.login.err_vcode );
return false;
}
}
$.login.submit( value, upass, vcode );
},
// 回调函数
loginDispose : function( data ){
if( data.synsrc ){
//同步登陆
$.ajax({
url:data.synsrc,
dataType: 'jsonp',
data: {},
success: function (data) {
backUrl = $.login.getRequest('callback_url') || window.location.href.replace(/#.*$/,"");
var str = /v2\/\?m=user\&a=login$/;
if(str.test(backUrl)){
location.href = "http://passport.1905.com";
}else{
location.href = backUrl;
}
},error:function(){
backUrl = $.login.getRequest('callback_url') || window.location.href.replace(/#.*$/,"");
location.href = backUrl;
}
});
}
},
//提交
submit : function( uname, upass , vcode){
$.login.go( uname, upass, vcode, $.login.loginDispose );
},
// showMsg
showMsg : function( msg ){
$('.loginBox .error').html('<em class="icons fail"></em>'+msg);
},
checkUsername : function(){
if($('.ecope_emailsuggest li.current').length > ){
usernameValue = $('.ecope_emailsuggest li.current').text();
$('.loginBox .username').val(usernameValue);
$('.ecope_emailsuggest li.current').removeClass('current');
}else{
usernameValue = $('.loginBox .username').val();
}
//var usernameValue = $('.loginBox .username').val();
$.ajax({
url:validateAPI,
type: "GET",
data : {m : 'user',a : 'checkoncheckEmailOrmobileOrusername',login_name : usernameValue},
dataType: "jsonp",
success: function(data) {
if(data.status == ){
$.login.showMsg('账号不存在');
$('.loginBox .username').siblings('.msg-box').remove();
return false;
}else{
$('.loginBox .error').html('');
$('.loginBox .username').parent('fieldset').append(passBoxTag);
}
}
});
},
go : function( username, password, vcode, callback ){//登陆
var url = window.location.host.split(".")[] == "passport" ? "/v2/api/?m=user&a=login" : "http://passport.m1905.com/v2/api/?m=user&a=login";
$.ajax({
url: url,
type: "GET",
data: {'username':username,'password':password,'seccode':vcode},
dataType: "jsonp",
success: function(data) {
if(data.status == ){
if(callback){
callback(data.data);
}
}else{
//抛出错误
$.login.showMsg( data.info );
//登陆错误次数超过3次则提示输入验证码
if(data.data.error_max > && $('.loginsecCode').is(':hidden')){
$('.loginsecCode').show();
}
}
}
});
},
getRequest : function(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i"),
r = window.location.search.substr().match(reg);
return (r!=null)? unescape(r[]) : null;
}
};
$('.loginBox .username').blur(function(){
$.login.checkUsername();
});
$('.loginBox .submit').click(function(){
$.login.checkForm();
});
function getRequest(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i"),
r = window.location.search.substr().match(reg);
return (r!=null)? unescape(r[]) : null;
};
var refer = document.referrer,
currentUrl = window.location.href.replace(/#.*$/,""),
backUrl = getRequest('callback_url') || currentUrl || refer || 'http://www.1905.com/',
currentUrl = window.location.hash;
$(document).on('click', '[data-login]', function() {
var p = $(this).data('login'),
url = encodeURIComponent( backUrl );
p && ( window.location = 'http://openapi.passport.m1905.com/Login/Authorize/' + p + '/?ReturnUrl=' + url )
return false;
})
$('.more-link-toggle').click(function(){
var $this = $(this);
$('.link-area').toggle();
if($this.hasClass('more')){
$this.removeClass('more').addClass('closelink');
$('.more-link-text').text('收起');
}
else{
$this.removeClass('closelink').addClass('more');
$('.more-link-text').text('更多');
}
return false;
})
})
login placeholder的更多相关文章
- css spprite应用
(一)实现简单的淘宝带图标侧边栏效果 <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- html5 学习笔记
一.ie8及以下对html5相关语义标签的支持 <!-[if lt IE9]> <script src="html5.js"></script> ...
- css sprite应用
(一)实现简单的淘宝带图标侧边栏效果 <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- vuex登录验证及保持登录状态
不知道vuex的可以先看一下 vuex官方文档,这里就不赘述了. 实现思路:假设我们现在想要访问自己在博客园里写的博客,这时候服务器需要知道当前用户是谁,才能确定我们是否有访问权限并正确地返回我们需要 ...
- [XNUCA 进阶篇](web)writeup
XNUCA 靶场练习题writeup default 阳关总在风雨后 题目过滤很多,*,#,/ ,and,or,|,union,空格,都不能用 盲注,最后的姿势是:1'%(1)%'1 中间的括号的位置 ...
- [转]jQuery Popup Login and Contact Form
本文转自:http://www.formget.com/jquery-popup-form/ Pop up forms are the smart way to present your site. ...
- 记录:asp.net mvc 中 使用 jquery 实现html5 实现placeholder 密码框 提示兼容password IE6
@{ViewBag.Title = "完美结合";} <script>var G_start_time = new Date;</script> <! ...
- [MODx] 6. Cache '!' with login package
1. Install login package. 2. Create a Template called 'login': [[!Login? &loginResourceId=`13` / ...
- 让ie6/7/8兼容css3的圆角阴影等特殊效果的方法 PIE1.0.0及placeholder在这些IE下生效的方法
PIE地址:http://css3pie.com/ 使用方法1: #login,#AnnouncementBox { border:3px solid #fff; -webkit-border-r ...
随机推荐
- openerp 7 在ubuntu上设置开机启动
我们要让openerp开机运行起来. 第一步,先进入系统目录: cd /etc/init.d 第二步,创建文件.命名为openerp-server sudo vi openepr-server 第三步 ...
- java基础:数据类型
一:基本数据类型 (1):整数类型 byte,short,int,long (2):浮点类型 float , double (3):布尔类型 boolean 注意: long 类型的变量后面要 ...
- C语言中的三值合一
在学习C语言中我们会发现这样一种情况: #include<stdio.h> Int main() { Int ar[10]; printf(“%p\n”,ar); printf(“%p\n ...
- Jquery源码中的Javascript基础知识(三)
这篇主要说一下在源码中jquery对象是怎样设计实现的,下面是相关代码的简化版本: (function( window, undefined ) { // code 定义变量 jQuery = fun ...
- python练习程序(c100经典例16)
题目: 输入两个正整数m和n,求其最大公约数和最小公倍数. def foo(a,b): if a<b: (a,b)=(b,a) aa=a; bb=b; while b!=0: tmp=a%b; ...
- Struts2的crud
struts2的crud引出的问题: 1.当Action里面有其他类的实例引用属性时,当要用请求参数为该对象的属性赋值时,如何将其压入栈顶. 2.当有的操作(list)不需要创建该属性的实例对象时,或 ...
- 【转】关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型
原文网址:http://www.crifan.com/python_head_meaning_for_usr_bin_python_coding_utf-8/ #!/usr/bin/python 是用 ...
- eclipse环境下tomcat远程调试方法
前提:Windows环境tomcat是以catalina.bat方式而非Windows服务形式启动(两者所使用的JAVA配置及JVM参数会有差异). 服务器段设置 方法1:修改CATALINA_OPT ...
- unity, 在保持场景根节点Transform不变且Hierarchy结构不变的前提下整体旋转场景
比如我们摆出下面结构: 其Hierarchy如下: 其中根节点road的Transform是如下干净的原始状态: 现在想保持road的Hierarchy和Transform都不变的情况下将road旋转 ...
- android学习视频(实战项目演练)
1.基于Android平台实战无线点餐系统(客户端(Client)和服务端(Server))①http://kuai.xunlei.com/d/xmBrDwI8CAAyXVFRa3d②http://k ...