0

我的客户希望使用 (###)###-#### 格式统一结帐时输入的所有客户电话号码(客人或注册用户)。我找到了一段我认为可以工作的代码片段,但我不确定如何将它实现到 Magento 表单中,以便它正确执行并且不会在用户提交表单时弄乱进入 Magento 的数据。我也意识到存储这样的数字而不是 1234567890 并不是最佳实践,原因有很多,但这正是客户想要的。任何帮助,将不胜感激。

我正在编辑的文件:template/checkout/onepage/billing.phtml

代码行:

<div class="field">
<label for="billing:telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>
<div class="input-box">
<input type="text" name="billing[telephone]" value="<?php echo $this->escapeHtml($this->getAddress()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('telephone') ?>" id="billing:telephone" />
</div>
</div>

我发现我正在尝试实现的代码: http ://www.weberdev.com/get_example.php3?ExampleID=3605

<?php function phone_number($sPhone){ 
$sPhone = ereg_replace("[^0-9]",'',$sPhone); 
if(strlen($sPhone) != 10) return(False); 
$sArea = substr($sPhone,0,3); 
$sPrefix = substr($sPhone,3,3); 
$sNumber = substr($sPhone,6,4); 
$sPhone = "(".$sArea.")".$sPrefix."-".$sNumber; 
return($sPhone); 
} 
print phone_number("  (555) 555 - 1212 "); 
?>
4

3 回答 3

0

添加后在输入字段中添加 validate-phoneLax 类,您的 html 将如下所示。

<input type="text" name="billing[telephone]" value="<?php echo $this->escapeHtml($this->getAddress()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('telephone') ?> validate-phoneLax" id="billing:telephone" />

刷新您的页面,如果它仍然无法正常工作,那么您需要定义您的表单,然后添加以下代码。并更新您的表单 ID。

  <script type="text/javascript">
      var myForm = new VarienForm( 'your_form_id_here' );
  </script>

这应该工作

于 2013-05-17T14:47:28.183 回答
0

转到prototype/validate.js 并找到

['validate-phoneStrict', 'Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.', function(v) {
                return Validation.get('IsEmpty').test(v) || /^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/.test(v);
            }], 

并更换

  [ 'validate-phoneStrict',
      'Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.',
      function(v)
      {
          return Validation.get('IsEmpty').test(v)
              || /\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\d{1,14}$/.test(v);
      }
    ]
于 2016-08-23T09:06:21.460 回答
-2

简单的解决方法:只需使用 jquery validation.js ... 为字段设置您的类以包含“validate-phoneStrict”

使用它,您将能够在 js 中使用以下代码规则:

'validate-phoneStrict', 'Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.', function(v) {
                return Validation.get('IsEmpty').test(v) || /^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/.test(v);
于 2015-05-13T23:02:18.533 回答