访客结帐时的 Opencart JS 验证
Opencart JS Validation on guest checkout
我在客人结账时添加了一些额外的字段,其中一些需要验证。因为,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>
解决了问题 - 按钮正在执行验证功能,然后在关闭警告框后,它会继续单击 checkout.tpl 中的#button-guest。为了解决这个问题,我将验证放在 #button-guest 函数开头的 checkout.tpl 中。
你可以在控制器文件上做 catalog/controller/checkout/guest.php
在控制器上定义 pickup_date
并在您的语言文件上添加 pickup_date_TEXT_LANGUAGE
以翻译该值
在 json
代码中添加 if 语句以验证输入值
if ((utf8_strlen(trim($this->request->post['pickup_date'])) = '') {
$json['error']['pickup_date'] = $this->language->get('error_pickup_date_TEXT_LANGUAGE');
}
您还必须在语言文件中定义错误消息 error_pickup_date_TEXT_LANGUAGE
我在客人结账时添加了一些额外的字段,其中一些需要验证。因为,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>
解决了问题 - 按钮正在执行验证功能,然后在关闭警告框后,它会继续单击 checkout.tpl 中的#button-guest。为了解决这个问题,我将验证放在 #button-guest 函数开头的 checkout.tpl 中。
你可以在控制器文件上做 catalog/controller/checkout/guest.php
在控制器上定义 pickup_date
并在您的语言文件上添加 pickup_date_TEXT_LANGUAGE
以翻译该值
在 json
代码中添加 if 语句以验证输入值
if ((utf8_strlen(trim($this->request->post['pickup_date'])) = '') {
$json['error']['pickup_date'] = $this->language->get('error_pickup_date_TEXT_LANGUAGE');
}
您还必须在语言文件中定义错误消息 error_pickup_date_TEXT_LANGUAGE