直接上代码把:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
< div id = "register" > < h4 >会员注册</ h4 > < div class = "formdiv" > < form method = "post" action = "register.php?action=register" name = "register" id = "registerForm" > < dl > < dt >请认真填写以下内容</ dt > < dd class = "hasspan" > 用户名:< input type = "text" name = "username" > </ dd > < dd class = "hasspan" > 密码:< input type = "password" name = "pwd" > </ dd > < dd class = "hasspan" > 确认密码:< input type = "password" name = "pwdagain" > </ dd > < dd id = "tximg" > < img src = "img/face/m01.gif" alt = "选择头像" id = "faceimg" > < input type = "hidden" name = "touxiang" value = "" > < label id = "imgsrclabel" >m01.gif</ label > </ dd > < dd style = "margin-right:120px;" > 验证码:< input type = "text" name = "code" > < span > < img src = "code.php" alt = "code" id = "code" name = "code" > < a href = "#code" id = "change" >换一张</ a > </ span > </ dd > < dd class = "btns" > < input type = "button" name = "submit" id = "submit" value = "注册" > < input type = "button" name = "quit" id = "quit" value = "退出" > </ dd > </ dl > </ form > </ div > </ div > 表单数据提交到本页面,下面是js处理 /*注册表单提交*/ function formDeal() { var btnSubmit = document.getElementById('submit'); var formId = document.getElementById('registerForm'); btnSubmit.onclick = function() { //表单的submit()方法不能提交表单 formId.submit(); } } 如果表单提交,在本页面有一段提示信息 if(!empty($_GET['action']) && $_GET['action'] == 'register') { echo '你提交了数据'; exit(); } |
结果是测试了许久都没有看到提示信息,以为是代码错了或者方法写错了,仔细核对,在结果官方文档,确认没有出错。
formId.submit()不能提交,就暂时只好把btnSubmit的type改为submit
this.type="submit"
在网上查了资料,原因归结为两点:
1、表单中不能有name=”submit” 的标签
2、表单中不能缺少《enctype=”multipart/form-data”》
经测试,此两点乃荒谬,并没有解决我的问题(或许是我的问题环境不一样)
后来,以为论坛的坛友建议我把注册按钮的ID改个名字,不用submit。改正之后,表单正常提交,提示信息出现。
最后总结:button的id不要设置为submit,否则可能会引起混淆,导致表单的submit()方法不能提交表单。在命名ID时,名字最好不要和现有的api在名称上重复,避免不必要的烦扰。