【发布时间】:2021-01-30 21:27:17
【问题描述】:
我正在通过 HTML 表单将数据发送到 PHP 文件,以便将其插入到带有 SQL 脚本的数据库中, 使用 JavaScript 函数验证相同的表单。
这两个分别按预期工作,
但是当一起使用时-<form method="POST" action="myPHPFile.php" onsubmit="validationFunc(event)">-
只有验证功能有效,页面不会被重定向到 PHP 文件。
删除 JS 时(仅留下 <form method="POST" action="myPHPFile.php">) - 表单中的数据正确提交,页面按预期重定向到 PHP 文件。
如果输入无效,我需要有一些 JS 函数来停止, 如果输入数据有效,另一个继续并将输入数据发送到 PHP 文件。
示例代码:
function isInputChars(evt) {
let ch = String.fromCharCode(evt.which);
if (!(/[a-z,A-Z,-]/.test(ch))) {
alert("Please only enter only characters")
evt.preventDefault();
}
}
function validateForm(event) {
event.preventDefault();
var validateFormInputs = [];
var inputLength;
StringInput = document.getElementById("city");
StringInput = StringInput.value;
inputLength = StringInput.length;
if (inputLength < 2) {
alert("City: Please enter at least 2 Characters")
validateFormInputs.push(false);
} else {
validateFormInputs.push(true);
}
StringInput = document.getElementById("street");
StringInput = StringInput.value;
inputLength = StringInput.length;
if (inputLength < 2) {
alert("Street: Please enter at least 2 Characters")
validateFormInputs.push(false);
} else {
validateFormInputs.push(true);
}
var x;
for (var i = 0; i < 2; i++) {
if (validateFormInputs[i] === false) {
x = false;
break;
} else {
x = true;
}
}
if (x == true) {
console.log("Data is sent to DB")
someFunctionToContinueSendingTheData();
} else {
console.log("Data is INVALID")
someFunctionToStop();
}
}
<form name="myForm" method="POST" action="sendItem.php" onsubmit="validateForm(event)">
<input id="city" name="city" type="text" class="form-control" onkeypress="isInputChars(event)" required>
<input id="street" name="street" type="text" class="form-control" onkeypress="isInputChars(event)" required>
<input type="submit" class="btn btn-primary btn-lg" value="Publish">
</form>
我很乐意在以下方面提供帮助:
- 如何将输入数据重定向到 PHP 文件(不移除 JS 验证)
- 如何实现JS函数发送数据到PHP/cancel。
谢谢!
【问题讨论】:
标签: javascript php html forms