php - this.submit() 的范围?

标签 php javascript html

我不熟悉 html、javascript 中的“this”范围。

因此,在查看一些 SO 帖子后,我发现“this”实体的“范围”可能存在细微差别。

这是我遇到问题的地方:(编辑:我帖子中的所有代码都位于文件 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” anchor ,因为它 CSS样式,是一个符合UI准则的按钮 在整个网站上都有效。

(我是否怀疑设计“提交”按钮的样式比其他人更可取? '没有javascript会中断'?是的,我愿意。我有选择吗 这里?不。使用标准 type="submit"不是我必须的选项 一起工作。)

尽管从视觉上很明显页面会在以下情况下重新加载 我输入用户名、密码,然后单击“登录”——我这样做 这在 php 部分的文件顶部:

  var_dump($_POST);

并且 POST 数组总是

所以我的问题是关于上面代码中“this”的范围:

  onclick="this.submit();"

“this”指的是形式还是指我在其中的“a” anchor 我在调用“this.submit”吗?

请注意,我还尝试通过以下方式完成表单的发布

onclick="document.registerForm.submit();"

这给出了相同的结果——“用户名”和“密码”字段 返回到它们的默认值,但 POST 数组为空。

我需要做的就是在 单击“a” anchor “登录”——我认为应该使用“this.submit()” 工作——但是 POST 数组总是空的。为什么?

最佳答案

您缺少 name表单字段的属性。

<input type="text" name="user" value="Username">
<input type="text" name="pass" value="Password">

编辑 另外,this指的是调用它的元素。在您的示例中,this会引用 <a>标签。

关于php - this.submit() 的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9537130/

相关文章:

php - Laravel 重命名文件

jquery - 如何摆脱围绕整个选项列表的蓝色边框

javascript - meteor 如何在电子邮件中发送HTML正文?

javascript - 如何使用数百个脚本缩小index.html 文件?

javascript - 如何将 localstorage 项设置回 null。

html - 多重背景过渡 CSS3

php - 存储来自 ajax 页面的检查值

php - 我如何从 MySQL 获取特定的最后一个值

php - 接收串口数据 : real-time web display + logging (with downsampling)

javascript - xml_http.onreadystatechange 不是一个函数