访客结账时的 Opencart JS 验证

时间:2021-03-04 09:02:58

标签: javascript php html validation opencart2.x

我在客人结账时添加了一些额外字段,其中一些需要验证。因为,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>

2 个答案:

答案 0 :(得分:0)

对问题进行排序 - 按钮正在执行验证功能,然后一旦关闭警报框,它就会继续单击 checkout.tpl 中的 #button-guest。为了解决这个问题,我将验证放在 #button-guest 函数开头的 checkout.tpl 中。

答案 1 :(得分:0)

您可以在控制器文件 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');
        }

您还必须在语言文件中定义错误 MSG error_pickup_date_TEXT_LANGUAGE

相关问题