gpt4 book ai didi

php - javascript 不验证单个 php 页面中的多个表单

转载 作者:行者123 更新时间:2023-11-30 18:07:30 25 4
gpt4 key购买 nike

我是网络开发的新手。我有一个关于在单个 php 页面中验证用户输入数据的问题:

这是我的代码

<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>

我的问题是,此代码不验证用户输入数据。我不知道为什么。因为我对我的其他 php 页面做了完全相同的事情,除了它们只有一种形式而不是像以防万一的多种形式。

因此,用户输入未得到验证。 $_POST 请求总是发送到我的 logic.php。

希望有人能帮帮我。

最佳答案

您应该使用 ID 属性来唯一标识页面上的元素 - 例如您的表单。

<form id="myFormID">
<input name="skill_name" type="text" />
</form>

然后你可以通过 javascript 引用表单:

document.getElementById("myFormID");
function validate_skill_name()
{
var formElm = document.getElementById("myFormID");

if (formElm.skill_name.value == null || formElm.skill_name.value == "") {
alert("skill name field is incorrect");
formElm.skill_name.focus();
return false;
}
return true;
}

此外,更好的方法是使用 jQuery:

$("#myFormID").submit(function(){
var inputElmVal = $("input[name=input_field_name]").val();
if(inputElmVal == '')
{
// Do your null validation here ....
}
});

关于php - javascript 不验证单个 php 页面中的多个表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15465619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com