【发布时间】:2021-06-02 21:45:43
【问题描述】:
我在客人结账时添加了一些额外字段,其中一些需要验证。因为,HTML 输入“必需”似乎在“面板折叠”环境中不起作用,并且 PHP 验证是超级神秘的(无论如何对我来说),有没有人在这里使用过 JS 验证。 我已经设置了 JS 验证,它会在字段留空时发出警报,但是在关闭警报框时,它会移动到 payment_method 而不强制在客人结账时进行更正。在我深入研究之前,是我的 JS 验证中的错误,还是“面板崩溃”的特性,从而迫使我使用 PHP 验证。 Opencart v2.3.0.2 此代码向一个空字段发出警报,但在关闭警报框时移动到 payment_method。
<form name="guest_form" >
<tr>
<td class="col-md-1">
<div class="form-group required">
<div class="col-sm-10">
<input class="form-control" id="input-payment-
city" name="pickup_date" placeholder="**Collection Date" type="text" />
</div>
</div>
</td>
</tr>
<div class="buttons">
<div class="pull-right">
<input type="button" value="<?php echo $button_continue; ?>" id="button-guest" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary" onclick="guestValid()" />
</div>
</div>
</form>
<script type="text/javascript">
function guestValid()
{
var pickup_date = document.forms["guest_form"]["pickup_date"].value;
if (pickup_date == "")
{
window.alert("Please select Collection Date");
pickup_date.focus();
return false;
}
}
</script>
【问题讨论】:
-
如果它没有按照您的预期工作,这显然是错误的。重要的是,您永远不会犯错误,JavaScript 是客户端,我可以将其关闭并输入任何我想输入的内容,记住,即使您创建了网站,您也不是我的老板。始终保护自己免受服务器端的错误输入(PHP 是您应该验证的地方,但为了外观,您正在装饰客户端)。
-
你能给我看一个请求 guestValid() 的 html 表单吗?
-
我已编辑以包含与 JS 验证相关的部分 HTML
标签: javascript php html validation opencart2.x