Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
youka-api
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
java-youka-wallet
youka-api
Commits
5b37019a
Commit
5b37019a
authored
May 17, 2018
by
Java-聂换换
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
微信分享h5注册页面
parent
487e8550
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
383 additions
and
97 deletions
+383
-97
style.css
src/main/webapp/static/share/css/style.css
+44
-0
DES.js
src/main/webapp/static/share/js/DES.js
+0
-0
getQueryStringByName.js
src/main/webapp/static/share/js/getQueryStringByName.js
+5
-0
regist.js
src/main/webapp/static/share/js/regist.js
+99
-59
sha1.js
src/main/webapp/static/share/js/sha1.js
+174
-0
regist.html
src/main/webapp/static/share/regist.html
+61
-38
No files found.
src/main/webapp/static/share/css/style.css
View file @
5b37019a
...
...
@@ -21,6 +21,9 @@
font
:
0px
Arial
;
overflow
:
hidden
;
}
.none
{
display
:
none
!important
;
}
/*
*遮罩
*/
...
...
@@ -128,4 +131,44 @@
}
.alert-main
{
position
:
absolute
;
text-align
:
center
;
z-index
:
1002
;
background
:
#fff
;
width
:
300px
;
height
:
210px
;
margin-left
:
-150px
;
left
:
50%
;
top
:
50%
;
margin-top
:
-105px
;
}
.alert-main
img
{
width
:
70px
;
margin
:
22px
0
15px
0
;
}
.alert-main
p
{
font-size
:
15px
;
color
:
#333
;
text-align
:
center
;
}
.alert-main
a
{
display
:
block
;
height
:
40px
;
line-height
:
40px
;
color
:
#fff
;
text-align
:
center
;
width
:
88%
;
margin
:
24px
auto
0
;
background
:
#FFD852
;
border-radius
:
6px
;
}
.regist-alert-msg
.alert-main
{
height
:
200px
;
}
.regist-alert-msg
p
{
margin-top
:
58px
;
font-size
:
18px
;
padding
:
0
5%
;
}
.regist-alert-msg
a
{
margin
:
55px
auto
0
;
}
\ No newline at end of file
src/main/webapp/static/share/js/DES.js
0 → 100644
View file @
5b37019a
This diff is collapsed.
Click to expand it.
src/main/webapp/static/share/js/getQueryStringByName.js
0 → 100644
View file @
5b37019a
function
getQueryStringByName
(
name
)
{
var
reg
=
new
RegExp
(
"(^|&)"
+
name
+
"=([^&]*)(&|$)"
,
"i"
);
var
r
=
window
.
location
.
search
.
substr
(
1
).
match
(
reg
);
if
(
r
!=
null
)
return
(
r
[
2
]);
return
null
;
}
src/main/webapp/static/share/js/regist.js
View file @
5b37019a
//页面逻辑
(
function
(){
/*公共变量*/
(
function
(){
//从url上截取参数(从第一个页面调过来的参数)(只能截取英文和数字)(需要用到一个插件)
var
$phone
=
getQueryStringByName
(
'phone'
);
//给推荐人手机号赋值
$
(
"#urlPhone"
).
val
(
$phone
);
var
urlPhoneVal
=
$
(
"#urlPhone"
).
val
();
var
key
=
hex_sha1
(
"YOUKA_#SECURITY!_KEY"
);
////3DES解密
var
des3jiemi
=
DES3
.
decrypt
(
key
,
urlPhoneVal
);
//console.info(key);
//console.info(des3jiemi);
/*公共变量*/
var
date
=
Date
.
parse
(
new
Date
());
//加密
hash
=
hex_md5
(
""
+
'Y0UKA@2018'
+
date
);
var
validCode
=
true
;
//验证码标记
var
time
=
60
;
//倒计时
var
telephoneReg
=
new
RegExp
(
/^
(
1
[
3,4,5,7,8
]{1}[\d]{9})
/
)
;
var
telephoneReg
=
new
RegExp
(
/^
(
1
[
3,4,5,7,8
]{1}[\d]{9})
/
)
;
//验证手机号
function
validPhone
(
ele
){
var
flag
=
true
;
if
(
!
(
/^1
[
34578
]\d{9}
$/
.
test
(
ele
.
val
()))){
alert
(
"手机号错误啊!!"
)
if
(
!
(
telephoneReg
.
test
(
ele
.
val
()))){
$
(
"#msgError"
).
removeClass
(
"none"
);
$
(
"#msgFail"
).
html
(
"您输入的手机号码格式有误,请重新输入"
);
flag
=
false
;
}
else
{
flag
=
true
;
...
...
@@ -24,7 +34,8 @@ function validPhone(ele){
var
flag
=
true
;
var
phone
=
$
(
"#phone"
).
val
();
if
(
!
phone
){
alert
(
"手机号不能为空!"
)
$
(
"#msgError"
).
removeClass
(
"none"
);
$
(
"#msgFail"
).
html
(
"请输入手机号"
);
flag
=
false
;
}
else
{
flag
=
validPhone
(
$
(
"#phone"
));
...
...
@@ -41,7 +52,7 @@ function validPhone(ele){
if
(
validCode
){
validCode
=
false
;
$
.
ajax
({
url
:
'http://
39.107.124.166
:8080/youka-api/api/user/getIdentifyCode'
,
url
:
'http://
youkapay.com
:8080/youka-api/api/user/getIdentifyCode'
,
data
:
content
,
dataType
:
'json'
,
type
:
'POST'
,
...
...
@@ -49,6 +60,7 @@ function validPhone(ele){
console
.
info
(
"验证码"
)
console
.
info
(
data
)
if
(
data
.
status
==
'2000'
){
code
.
css
(
"background"
,
"#ddd"
);
var
t
=
setInterval
(
function
()
{
time
--
;
code
.
html
(
time
+
"s"
);
...
...
@@ -57,6 +69,7 @@ function validPhone(ele){
code
.
html
(
"重新获取"
);
time
=
60
;
validCode
=
true
;
code
.
css
(
"background"
,
"#FF4E0C"
);
}
},
1000
);
}
...
...
@@ -70,55 +83,81 @@ function validPhone(ele){
}
});
//点击提交按钮验证信息
$
(
"#submit"
).
on
(
"click"
,
function
(){
var
phone
=
$
(
"#phone"
).
val
();
var
password
=
$
(
"#password"
).
val
();
var
yzm
=
$
(
"#yzm"
).
val
();
if
(
phone
==
""
){
alert
(
"请输入手机号!"
);
return
false
;
}
else
if
(
!
telephoneReg
.
test
(
phone
)){
alert
(
"请输入正确的手机号!"
);
}
else
if
(
password
==
""
){
alert
(
"请输入密码!"
);
return
false
;
}
else
if
(
password
.
length
>
12
||
password
.
length
<
6
){
alert
(
"请设置6-12位长度密码!"
);
return
false
;
}
else
if
(
yzm
==
""
){
alert
(
"请输入验证码!"
);
return
false
;
}
else
{
var
content
=
{
subMerchantCode
:
''
,
timestamp
:
date
,
sign
:
hash
,
mobile
:
phone
,
newPassword
:
password
,
identityCode
:
yzm
,
function
:
'1'
,
// recommendedMobile:''
}
// var params = {
// 'content':JSON.stringify(content)
// };
console
.
info
(
"提交"
)
console
.
info
(
content
)
$
.
ajax
({
type
:
'POST'
,
url
:
'http://39.107.124.166:8080/youka-api/api/user/signUp'
,
data
:
content
,
dataType
:
'json'
,
success
:
function
(
data
){
console
.
info
(
data
)
},
error
:
function
(
data
){
console
.
info
(
"错误"
)
console
.
info
(
data
)
}
});
}
});
//点击提交按钮验证信息
$
(
"#submit"
).
on
(
"click"
,
function
(){
var
phone
=
$
(
"#phone"
).
val
();
var
password
=
$
(
"#password"
).
val
();
var
yzm
=
$
(
"#yzm"
).
val
();
var
tjPhone
=
des3jiemi
;
console
.
info
(
tjPhone
);
if
(
phone
==
""
){
$
(
"#msgError"
).
removeClass
(
"none"
);
$
(
"#msgFail"
).
html
(
"请输入手机号"
);
return
false
;
}
else
if
(
!
telephoneReg
.
test
(
phone
)){
$
(
"#msgError"
).
removeClass
(
"none"
);
$
(
"#msgFail"
).
html
(
"您输入的手机号码格式有误,请重新输入"
);
}
else
if
(
password
==
""
){
$
(
"#msgError"
).
removeClass
(
"none"
);
$
(
"#msgFail"
).
html
(
"请输入密码"
);
return
false
;
}
else
if
(
password
.
length
>
12
||
password
.
length
<
6
){
$
(
"#msgError"
).
removeClass
(
"none"
);
$
(
"#msgFail"
).
html
(
"请设置6-12位长度密码"
);
return
false
;
}
else
if
(
yzm
==
""
){
$
(
"#msgError"
).
removeClass
(
"none"
);
$
(
"#msgFail"
).
html
(
"请输入验证码"
);
return
false
;
}
else
{
var
content
=
{
subMerchantCode
:
''
,
timestamp
:
date
,
sign
:
hash
,
mobile
:
phone
,
newPassword
:
password
,
identityCode
:
yzm
,
function
:
'1'
,
recommendedMobile
:
tjPhone
}
console
.
info
(
"提交"
)
console
.
info
(
content
)
$
.
ajax
({
type
:
'POST'
,
url
:
'http://youkapay.com:8080/youka-api/api/user/signUp'
,
data
:
content
,
dataType
:
'json'
,
success
:
function
(
data
){
console
.
info
(
data
)
if
(
data
.
status
==
'2000'
){
//跳转到市场
// window.location = "apk下载地址";
var
user
=
navigator
.
userAgent
;
if
(
user
.
match
(
/
(
iphone os
)
/i
))
{
console
.
log
(
"isphone"
);
// window.location.href='https://appsto.re/cn/KG6P2.i'
}
else
if
(
user
.
match
(
/ipad/i
)){
console
.
log
(
"isipad"
);
}
else
if
(
user
.
match
(
/
(
midp|ucweb|android|windows ce|windows mobile
)
/i
)){
console
.
log
(
"android"
);
// window.location.href='http://tstatics.iyuwan.com/files/apk/201605/Iyuwan.apk'
};
}
else
{
$
(
"#registError"
).
removeClass
(
"none"
);
$
(
"#registFail"
).
html
(
data
.
message
);
}
},
});
}
});
//关闭弹窗
$
(
"#closeBtn"
).
on
(
"click"
,
function
(){
$
(
".regist-alert"
).
addClass
(
"none"
);
})
$
(
"#msgCloseBtn"
).
on
(
"click"
,
function
(){
$
(
".regist-alert-msg"
).
addClass
(
"none"
);
})
})();
\ No newline at end of file
src/main/webapp/static/share/js/sha1.js
0 → 100644
View file @
5b37019a
/*
* A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
* in FIPS PUB 180-1
* Version 2.1-BETA Copyright Paul Johnston 2000 - 2002.
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for details.
*/
/*
* Configurable variables. You may need to tweak these to be compatible with
* the server-side, but the defaults work in most cases.
*/
var
hexcase
=
0
;
/* hex output format. 0 - lowercase; 1 - uppercase */
var
b64pad
=
""
;
/* base-64 pad character. "=" for strict RFC compliance */
var
chrsz
=
8
;
/* bits per input character. 8 - ASCII; 16 - Unicode */
/*
* These are the functions you'll usually want to call
* They take string arguments and return either hex or base-64 encoded strings
*/
function
hex_sha1
(
s
)
{
return
binb2hex
(
core_sha1
(
str2binb
(
s
),
s
.
length
*
chrsz
));
}
function
b64_sha1
(
s
)
{
return
binb2b64
(
core_sha1
(
str2binb
(
s
),
s
.
length
*
chrsz
));
}
function
str_sha1
(
s
)
{
return
binb2str
(
core_sha1
(
str2binb
(
s
),
s
.
length
*
chrsz
));
}
function
hex_hmac_sha1
(
key
,
data
)
{
return
binb2hex
(
core_hmac_sha1
(
key
,
data
));
}
function
b64_hmac_sha1
(
key
,
data
)
{
return
binb2b64
(
core_hmac_sha1
(
key
,
data
));
}
function
str_hmac_sha1
(
key
,
data
)
{
return
binb2str
(
core_hmac_sha1
(
key
,
data
));
}
/*
* Perform a simple self-test to see if the VM is working
*/
function
sha1_vm_test
()
{
return
hex_sha1
(
"abc"
)
==
"a9993e364706816aba3e25717850c26c9cd0d89d"
;
}
/*
* Calculate the SHA-1 of an array of big-endian words, and a bit length
*/
function
core_sha1
(
x
,
len
)
{
/* append padding */
x
[
len
>>
5
]
|=
0x80
<<
(
24
-
len
%
32
);
x
[((
len
+
64
>>
9
)
<<
4
)
+
15
]
=
len
;
var
w
=
Array
(
80
);
var
a
=
1732584193
;
var
b
=
-
271733879
;
var
c
=
-
1732584194
;
var
d
=
271733878
;
var
e
=
-
1009589776
;
for
(
var
i
=
0
;
i
<
x
.
length
;
i
+=
16
)
{
var
olda
=
a
;
var
oldb
=
b
;
var
oldc
=
c
;
var
oldd
=
d
;
var
olde
=
e
;
for
(
var
j
=
0
;
j
<
80
;
j
++
)
{
if
(
j
<
16
)
w
[
j
]
=
x
[
i
+
j
];
else
w
[
j
]
=
rol
(
w
[
j
-
3
]
^
w
[
j
-
8
]
^
w
[
j
-
14
]
^
w
[
j
-
16
],
1
);
var
t
=
safe_add
(
safe_add
(
rol
(
a
,
5
),
sha1_ft
(
j
,
b
,
c
,
d
)),
safe_add
(
safe_add
(
e
,
w
[
j
]),
sha1_kt
(
j
)));
e
=
d
;
d
=
c
;
c
=
rol
(
b
,
30
);
b
=
a
;
a
=
t
;
}
a
=
safe_add
(
a
,
olda
);
b
=
safe_add
(
b
,
oldb
);
c
=
safe_add
(
c
,
oldc
);
d
=
safe_add
(
d
,
oldd
);
e
=
safe_add
(
e
,
olde
);
}
return
Array
(
a
,
b
,
c
,
d
,
e
);
}
/*
* Perform the appropriate triplet combination function for the current
* iteration
*/
function
sha1_ft
(
t
,
b
,
c
,
d
)
{
if
(
t
<
20
)
return
(
b
&
c
)
|
((
~
b
)
&
d
);
if
(
t
<
40
)
return
b
^
c
^
d
;
if
(
t
<
60
)
return
(
b
&
c
)
|
(
b
&
d
)
|
(
c
&
d
);
return
b
^
c
^
d
;
}
/*
* Determine the appropriate additive constant for the current iteration
*/
function
sha1_kt
(
t
)
{
return
(
t
<
20
)
?
1518500249
:
(
t
<
40
)
?
1859775393
:
(
t
<
60
)
?
-
1894007588
:
-
899497514
;
}
/*
* Calculate the HMAC-SHA1 of a key and some data
*/
function
core_hmac_sha1
(
key
,
data
)
{
var
bkey
=
str2binb
(
key
);
if
(
bkey
.
length
>
16
)
bkey
=
core_sha1
(
bkey
,
key
.
length
*
chrsz
);
var
ipad
=
Array
(
16
),
opad
=
Array
(
16
);
for
(
var
i
=
0
;
i
<
16
;
i
++
)
{
ipad
[
i
]
=
bkey
[
i
]
^
0x36363636
;
opad
[
i
]
=
bkey
[
i
]
^
0x5C5C5C5C
;
}
var
hash
=
core_sha1
(
ipad
.
concat
(
str2binb
(
data
)),
512
+
data
.
length
*
chrsz
);
return
core_sha1
(
opad
.
concat
(
hash
),
512
+
160
);
}
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function
safe_add
(
x
,
y
)
{
var
lsw
=
(
x
&
0xFFFF
)
+
(
y
&
0xFFFF
);
var
msw
=
(
x
>>
16
)
+
(
y
>>
16
)
+
(
lsw
>>
16
);
return
(
msw
<<
16
)
|
(
lsw
&
0xFFFF
);
}
/*
* Bitwise rotate a 32-bit number to the left.
*/
function
rol
(
num
,
cnt
)
{
return
(
num
<<
cnt
)
|
(
num
>>>
(
32
-
cnt
));
}
/*
* Convert an 8-bit or 16-bit string to an array of big-endian words
* In 8-bit function, characters >255 have their hi-byte silently ignored.
*/
function
str2binb
(
str
)
{
var
bin
=
Array
();
var
mask
=
(
1
<<
chrsz
)
-
1
;
for
(
var
i
=
0
;
i
<
str
.
length
*
chrsz
;
i
+=
chrsz
)
bin
[
i
>>
5
]
|=
(
str
.
charCodeAt
(
i
/
chrsz
)
&
mask
)
<<
(
24
-
i
%
32
);
return
bin
;
}
/*
* Convert an array of big-endian words to a string
*/
function
binb2str
(
bin
)
{
var
str
=
""
;
var
mask
=
(
1
<<
chrsz
)
-
1
;
for
(
var
i
=
0
;
i
<
bin
.
length
*
32
;
i
+=
chrsz
)
str
+=
String
.
fromCharCode
((
bin
[
i
>>
5
]
>>>
(
24
-
i
%
32
))
&
mask
);
return
str
;
}
/*
* Convert an array of big-endian words to a hex string.
*/
function
binb2hex
(
binarray
)
{
var
hex_tab
=
hexcase
?
"0123456789ABCDEF"
:
"0123456789abcdef"
;
var
str
=
""
;
for
(
var
i
=
0
;
i
<
binarray
.
length
*
4
;
i
++
)
{
str
+=
hex_tab
.
charAt
((
binarray
[
i
>>
2
]
>>
((
3
-
i
%
4
)
*
8
+
4
))
&
0xF
)
+
hex_tab
.
charAt
((
binarray
[
i
>>
2
]
>>
((
3
-
i
%
4
)
*
8
))
&
0xF
);
}
return
str
;
}
/*
* Convert an array of big-endian words to a base-64 string
*/
function
binb2b64
(
binarray
)
{
var
tab
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
;
var
str
=
""
;
for
(
var
i
=
0
;
i
<
binarray
.
length
*
4
;
i
+=
3
)
{
var
triplet
=
(((
binarray
[
i
>>
2
]
>>
8
*
(
3
-
i
%
4
))
&
0xFF
)
<<
16
)
|
(((
binarray
[
i
+
1
>>
2
]
>>
8
*
(
3
-
(
i
+
1
)
%
4
))
&
0xFF
)
<<
8
)
|
((
binarray
[
i
+
2
>>
2
]
>>
8
*
(
3
-
(
i
+
2
)
%
4
))
&
0xFF
);
for
(
var
j
=
0
;
j
<
4
;
j
++
)
{
if
(
i
*
8
+
j
*
6
>
binarray
.
length
*
32
)
str
+=
b64pad
;
else
str
+=
tab
.
charAt
((
triplet
>>
6
*
(
3
-
j
))
&
0x3F
);
}
}
return
str
;
}
\ No newline at end of file
src/main/webapp/static/share/regist.html
View file @
5b37019a
<!DOCTYPE html>
<html>
<head>
<meta
charset=
"utf-8"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
>
<meta
name=
"viewport"
content=
"width=device-width"
>
<script
type=
"text/javascript"
src=
"js/jquery-1.9.1.min.js"
></script>
<script
type=
"text/javascript"
src=
"js/md5.js"
></script>
<link
rel=
"stylesheet"
href=
"css/style.css"
>
<title>
注册
</title>
<meta
charset=
"utf-8"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
>
<meta
name=
"viewport"
content=
"width=device-width"
>
<script
type=
"text/javascript"
src=
"js/jquery-1.9.1.min.js"
></script>
<script
type=
"text/javascript"
src=
"js/getQueryStringByName.js"
></script>
<script
type=
"text/javascript"
src=
"js/DES.js"
></script>
<script
type=
"text/javascript"
src=
"js/sha1.js"
></script>
<script
type=
"text/javascript"
src=
"js/md5.js"
></script>
<link
rel=
"stylesheet"
href=
"css/style.css"
>
<title>
注册
</title>
</head>
<body>
<div
class=
"wrap"
>
<!--头部-->
<div
class=
"purse-header"
>
<a
class=
"left"
></a>
<p>
注册
</p>
<div
class=
"clearf"
></div>
</div>
<div
class=
"purse-content"
>
<!-- 一行-->
<div
class=
"content-main"
>
<div
class=
"left main-img"
>
<img
src=
"image/purse-person.png"
>
<div
class=
"wrap"
>
<!-- 注册失败的弹窗-->
<div
class=
"regist-alert none"
id=
"registError"
>
<div
class=
"mask"
></div>
<div
class=
"alert-main"
>
<img
src=
"image/regist-fail.png"
>
<p
id=
"registFail"
>
注册失败
</p>
<a
id=
"closeBtn"
>
确定
</a>
</div>
<input
placeholder=
"请输入手机号"
class=
"left"
id=
"phone"
>
<div
class=
"clearf"
></div>
</div>
<div
class=
"content-main"
>
<div
class=
"left main-img"
>
<img
src=
"image/purse-psd.png"
>
<!--验证提示信息-->
<div
class=
"regist-alert-msg none"
id=
"msgError"
>
<div
class=
"mask"
></div>
<div
class=
"alert-main"
>
<p
id=
"msgFail"
></p>
<a
id=
"msgCloseBtn"
>
确定
</a>
</div>
<input
placeholder=
"请输入密码"
class=
"left"
type=
"password"
id=
"password"
>
<a><img
src=
"image/psd-show.png"
></a>
</div>
<!--头部-->
<div
class=
"purse-header"
>
<!-- <a class="left"></a>-->
<p>
注册
</p>
<div
class=
"clearf"
></div>
</div>
<div
class=
"content-main"
>
<div
class=
"left main-img"
>
<img
src=
"image/yzm-img.png"
>
<div
class=
"purse-content"
>
<!-- 一整行-->
<div
class=
"content-main"
>
<div
class=
"left main-img"
>
<img
src=
"image/purse-person.png"
>
</div>
<input
placeholder=
"请输入手机号"
class=
"left"
id=
"phone"
>
<div
class=
"clearf"
></div>
</div>
<input
placeholder=
"请输入验证码"
class=
"left"
style=
"width:54%;margin-right:6%"
id=
"yzm"
>
<a
class=
"left getyzm"
id=
"captchaButton"
>
获取验证码
</a>
<div
class=
"clearf"
></div>
<div
class=
"content-main"
>
<div
class=
"left main-img"
>
<img
src=
"image/purse-psd.png"
>
</div>
<input
placeholder=
"请输入密码"
class=
"left"
type=
"password"
id=
"password"
>
<a><img
src=
"image/psd-show.png"
></a>
<div
class=
"clearf"
></div>
</div>
<div
class=
"content-main"
>
<div
class=
"left main-img"
>
<img
src=
"image/yzm-img.png"
>
</div>
<input
placeholder=
"请输入验证码"
class=
"left"
style=
"width:54%;margin-right:6%"
id=
"yzm"
>
<a
class=
"left getyzm"
id=
"captchaButton"
>
获取验证码
</a>
<div
class=
"clearf"
></div>
</div>
<!-- 提交按钮-->
<!--推荐人手机号-->
<input
class=
"none"
value=
""
id=
"urlPhone"
>
<a
class=
"btn"
id=
"submit"
>
提交
</a>
</div>
<!-- 提交按钮
-->
<
a
class=
"btn"
id=
"submit"
>
提交
</a
>
<!--底部背景
-->
<
div
class=
"purse-footer"
></div
>
</div>
<!--底部背景-->
<div
class=
"purse-footer"
></div>
</div>
<script
type=
"text/javascript"
src=
"js/regist.js"
></script>
<script
type=
"text/javascript"
src=
"js/regist.js"
></script>
</body>
</html>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment