javascript不会在单个php页面中验证多个表单
我是网络开发新手。 我有一个关于在单个php页面中验证用户输入数据的问题: 这是我的密码javascript不会在单个php页面中验证多个表单,php,javascript,html,Php,Javascript,Html,我是网络开发新手。 我有一个关于在单个php页面中验证用户输入数据的问题: 这是我的密码 <html> <head> <script lanauge="JavaScript" type="text/javascript"> function validate_skill_name() { if (document.worker.skill_name == null
<html>
<head>
<script lanauge="JavaScript" type="text/javascript">
function validate_skill_name()
{
if (document.worker.skill_name == null
|| document.worker.skill_name == "") {
alert("skill name field is incorrect");
document.worker.skill_name.focus();
return false;
}
return true;
}
function validate_skill_id()
{
if (document.worker.worker_id1 == null
|| isNaN(document.worker.worker_id1)) {
alert("skill: worker id 1 field is incorrect");
document.worker.worker_id1.focus();
return false;
}
return true;
}
function validate_time_id()
{
if (document.worker.worker_id2 == null
|| isNaN(document.worker.worker_id2)) {
alert("time: worker id 2 field is incorrect");
document.worker.worker_id2.focus();
return false;
}
return true;
}
</script>
</head>
<body>
<h1> Select Workers </h1>
<form name="worker" action="" method="post" onsubmit="return(validate_skill_name());">
Skill Name: <input type="text" name="skill_name"/><br />
<input type="submit" value="submit me!"/>
</form>
<h1> Get Worker Skill </h1>
<form name="worker" action="" method="post" onsubmit="return(validate_skill_id());">
ID: <input type="text" name="worker_id1"/> <br />
<input type="submit" value="submit me!"/>
</form>
<h1> Get Worker Available Time </h1>
<form name="worker" action="" method="post" onsubmit="return(validate_time_id());">
ID: <input type="text" name="worker_id2"/> <br />
<input type="submit" value="submit me!"/>
</form>
<?php
require_once "../logic.php";
if ($_POST) {
$result = NULL;
if (array_key_exists('worker_id2', $_POST)) {
$result = logic_get_worker_available_time($_POST['worker_id2']);
} else if (array_key_exists('skill_name', $_POST)) {
$result = logic_select_has_skill($_POST['skill_name']);
} else if (array_key_exists('worker_id1', $_POST)) {
$result = logic_get_worker_skills($_POST['worker_id1']);
}
echo htmlspecialchars(print_r($result));
}
?>
</body>
函数验证\技能\名称()
{
如果(document.worker.skill_name==null
||document.worker.skill_name==“”){
警告(“技能名称字段不正确”);
document.worker.skill_name.focus();
返回false;
}
返回true;
}
函数验证\u技能\u id()
{
如果(document.worker.worker_id1==null
||isNaN(document.worker.worker_id1)){
警报(“技能:工人id 1字段不正确”);
document.worker.worker_id1.focus();
返回false;
}
返回true;
}
函数验证\u时间\u id()
{
如果(document.worker.worker_id2==null
||isNaN(document.worker.worker_id2)){
警报(“时间:工作人员id 2字段不正确”);
document.worker.worker_id2.focus();
返回false;
}
返回true;
}
挑选工人
技能名称:
获得工人技能
ID:
让工人有空
ID:
我的问题是,此代码不验证用户输入数据。我不知道为什么。因为我对我的其他php页面做了完全相同的事情,只是它们只有一个表单,而不像case中的多个表单
因此,用户输入不会得到验证$_POST请求总是被发送到my logic.php
希望有人能帮我 您应该使用ID属性来唯一地标识页面上的元素,例如您案例中的表单
<form id="myFormID">
<input name="skill_name" type="text" />
</form>
此外,更好的方法是使用jQuery:
$("#myFormID").submit(function(){
var inputElmVal = $("input[name=input_field_name]").val();
if(inputElmVal == '')
{
// Do your null validation here ....
}
});
您需要使用value,输入的名称是html元素
function validate_skill_name() {
if (document.worker.skill_name.value == null
|| document.worker.skill_name.value == "") {
alert("skill name field is incorrect");
document.worker.skill_name.focus();
return false;
}
return true;
}
您在错误控制台中看到任何错误吗?
function validate_skill_name() {
if (document.worker.skill_name.value == null
|| document.worker.skill_name.value == "") {
alert("skill name field is incorrect");
document.worker.skill_name.focus();
return false;
}
return true;
}