scope of this.submit()?


scope of this.submit()?

我对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>标记。