我对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>
此代码导致重新加载上面有表单的页面——证据是输入的用户名和密码闪存盘当我单击"登录"按钮--由于其CSS样式,是一个符合UI准则的按钮在整个网站上都有效。
(我是否怀疑设计"提交"按钮的样式相对于其他按钮更可取'没有javascript会中断'?是的。我有选择吗在这里不可以。我不需要使用标准type="submit"使用。)
尽管很明显,当我输入用户名和密码,然后单击"登录"--我会这在php部分的文件顶部:
var_dump($_POST);
POST阵列总是空。
所以我的问题是关于我上面代码中"this"的范围:
onclick="this.submit();"
"this"是指我所处的形式还是"a"锚我在叫"this.submit"?
请注意,我也尝试过通过的方式张贴表格
onclick="document.registerForm.submit();"
这给出了相同的结果——"用户名"answers"密码"字段返回到它们的默认值,但POST数组为空。
当"a"锚点"Login"被点击了——我认为使用"this.submit()"应该工作——但是POST数组总是空的。为什么?
表单字段缺少name
属性。
<input type="text" name="user" value="Username">
<input type="text" name="pass" value="Password">
编辑此外,this
指的是在其中调用它的元素。在您的示例中,this
将引用<a>
标记。