我是html,javascript中的'this'范围的新手。
因此,在查看了一些SO帖子后,我发现“这个”实体的“范围”可能存在微妙的差异。
这是我遇到问题的地方:(编辑:我的帖子中的所有代码都位于index.php文件中)
<form enctype="multipart/form-data"
class="registerFormStyles" name="registerForm"
action="index.php" method="post">
<input type="text" value="Username">
<input type="text" value="Password">
<a href="#" name="newUserRegister" class="login-button-landing"
onclick="document.registerForm.submit();">Login</a>
<!-- onclick="this.submit();">Login</a> -->
</form>
此代码会导致重新加载包含上述表单的页面 - 证据是键入的用户名和密码闪回 我的默认值=“用户名”和值=“密码” 点击“登录”按钮 - “a”锚点,因为它 CSS样式,是一个符合UI准则的按钮 在整个网站上都有效。
(我怀疑造型是一个“提交”按钮更可取 '会在没有javascript的情况下破解'吗?是的,我愿意。我有选择吗? 这里?不能。使用标准类型=“提交”不是我必须的选项 与之合作。)
虽然在视觉上很明显,页面会在重新加载时重新加载 我输入用户名,密码,然后单击“登录” - 我这样做 这位于php部分文件的顶部:
var_dump($_POST);
且POST数组始终 为空 。
所以我的问题是关于上面代码中'this'的范围:
onclick="this.submit();"
'this'是指我在其中的形式还是'a'锚 我叫“this.submit”?
请注意,我还尝试通过
执行表单的帖子onclick="document.registerForm.submit();"
这给出了相同的结果 - '用户名'和'密码'字段 返回默认值但POST数组为空。
我需要做的就是在上面的表格中正确发布 'a'锚'登录'被点击 - 我想用“this.submit()”应该 工作 - 但POST数组始终为空。为什么呢?
答案 0 :(得分:2)
您的表单字段缺少name
属性。
<input type="text" name="user" value="Username">
<input type="text" name="pass" value="Password">
修改强>
此外,this
指的是调用它的元素。在您的示例中,this
会引用<a>
标记。