JS - 通过javascript提交不会传递post变量
JS - submitting through javascript does not pass post variables
我正在使用纯JS首先阻止表单提交,然后我有一些验证代码,最后自动提交,但数据没有从客户端传递到服务器脚本。
这是 HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Chat Room</title>
<link type="text/css" href="main.css" rel="stylesheet" />
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<div id="container" class="add-nick">
<h3>Enter Your Name</h3>
<form action="chat.php" method="post" id="add-nicki">
<input type="text" placeholder="At least 6 alphabets e.g. Jackson" class="text" name="name" />
<input type="submit" value="Submit" class="submit" name="btnsubmit" />
</form>
</div>
</body>
</html>
JS:
window.onload = function() {
document.forms[0].onsubmit = function(e) {
e.preventDefault();
var regexp = new RegExp("^[A-Za-z]+$"),
elem = this.elements[0],
value = elem.value;
if(regexp.test(value) && typeof value != "null" && value.length > 5) {
elem.className = "text correct";
var formElem = this;
setTimeout(function() { formElem.submit(); }, 0);
}
else elem.className = "text wrong";
};
};
PHP 文件:
<?php
session_start();
if(isset($_POST['btnsubmit'])) {
$_SESSION['name'] = $_POST['name'];
echo $_SESSION['name'];
}
else {
if(!isset($_SESSION['name']))
echo "Header";
else
echo $_SESSION['name'];
}
?>
是否有问题或JS submit
功能无法正常运行?
仅当通过单击提交按钮提交表单时,才会传递与提交按钮对应的请求参数。这里的情况并非如此,因为您禁止原始表单提交(由按钮触发的表单),然后从 JavaScript 调用formElem.submit()
;没有按钮单击意味着没有请求参数,因此 PHP 脚本中的isset($_POST['btnsubmit'])
永远不会返回 true。
一种解决方案可能是在提交表单之前将 btnsubmit
参数添加到表单的操作中:
formElem.action += (formElem.action.indexOf('?') == -1 ? '?btnsubmit=Submit' : '&btnsubmit=Submit');
相关文章:
- 正在拆分AJAX POST变量
- 如何将 POST 变量添加并保存到 Qualtrics
- 我使用jQuery发布的表单不发送POST变量
- Firefox插件-在提交之前捕获post变量[no-enctype]
- AJAX 将 POST 变量发送到 PHP
- POST 变量没有将日期从 jQuery 提交到 php
- 在 POST 变量中使用“&”
- 在代码点火器端访问 Ajax POST 变量时出现问题
- 如何在jQuery中获取POST变量
- 在 PHP 函数中调用 POST 变量
- 如何在不重新加载页面的情况下将 POST 变量提供给 PHP
- 通过 AJAX 创建的 post 变量
- 使用 jQuery 将 post 变量添加到表单中
- JS - 通过javascript提交不会传递post变量
- PHP/Ajax没有返回正确的错误并且没有识别POST变量
- PHP mysql查询忽略POST变量
- 如何在php中获取javascript post变量
- 如何使用Javascript提交POST变量
- 使用Javascript提交POST变量
- cfhttp通过单击的链接传递POST变量