2011-10-06 59 views
1

我已经删除了我的Magento主题中几乎所有的.js参考。具体来说,我已将onclick从添加到购物车按钮中删除。删除表单验证导致表单不提交?

template/catalog/product/view/addtocart.phtml我已经删除onclick="productAddToCartForm.submit(this)

template/catalog/product/view/view.phtml我删除的代码块...

<script type="text/javascript"> 
//<![CDATA[ 
var productAddToCartForm = new VarienForm('product_addtocart_form'); 
productAddToCartForm.submit = function(button, url) { 
    if (this.validator.validate()) { 
     var form = this.form; 
     var oldUrl = form.action; 

     if (url) { 
      form.action = url; 
     } 
     var e = null; 
     try { 
      this.form.submit(); 
     } catch (e) { 
     } 
     this.form.action = oldUrl; 
     if (e) { 
      throw e; 
     } 

     if (button && button != 'undefined') { 
      button.disabled = true; 
     } 
    } 
}.bind(productAddToCartForm); 

productAddToCartForm.submitLight = function(button, url){ 
    if(this.validator) { 
     var nv = Validation.methods; 
     delete Validation.methods['required-entry']; 
     delete Validation.methods['validate-one-required']; 
     delete Validation.methods['validate-one-required-by-name']; 
     if (this.validator.validate()) { 
      if (url) { 
       this.form.action = url; 
      } 
      this.form.submit(); 
     } 
     Object.extend(Validation.methods, nv); 
    } 
}.bind(productAddToCartForm); 
//]]> 
</script>  

但是,现在当我提交表单我什么也没得到。

我想改变添加到购物车<button>到一个适当的提交。所以我改变了这个....

<button type="button" title="<?php echo $buttonTitle ?>" class="button btn-cart"><span><span><?php echo $buttonTitle ?></span></span></button> 

这个...

<input type="submit" value="<?php echo $buttonTitle ?>" /> 

当我这样做,表单提交,但我得到一个“找不到网页”,网址需要我看起来像这样/checkout/cart/add/uenc/aHR0cDovLzcwLjMyLjc0LjQ2L3J0bF9tYWdlbnRvL2luZGV4LnBocC9jYXRhbG9nL3Byb2R1Y3Qvdmlldy9pZC8xNQ,,/product/15/

是不是不可能在没有javascript的Magento中以旧式的方式提交表单?如果是这样,你可以指点一下吗?我的计划是连接我自己的jQuery验证(这很简单,我只需要验证qty字段的长度),并消除上面代码的一些荒谬。

+0

你不觉得当你添加的jQuery到原型加载页面,当你更换使用jQuery一个(而不是添加需要验证规则输入字段类属性)的原型验证看起来更加滑稽? – Zyava

+0

不是。我需要2或3行代码来验证我需要的而不是30个。另外,网站范围内我将使用jQuery而不是原型。所以它实际上非常有意义。你疯了? – jyoseph

+0

并添加到...当我写我的验证我实际上** **评论**的代码。然后,当我在另外6个月内更新它时,我会知道发生了什么。 – jyoseph

回答

1

我不知道如何和我不知道为什么,但是当我禁用“使用Web服务器重写”它与标准提交按钮一起使用。

enter image description here

0

对于窗体以纯HTML提交,它必须有具有属性类型=一个元件“提交”

你有该按钮类型=“按钮”,当它应该是类型=“提交”因为它扮演着提交按钮的角色。

这也意味着,无论您设置要提交的表单的URL是它所在的位置,时间段。如果验证不存在,则无法使用“验证”动态地添加和更改内容。

所以,没有。用简单的HTML表单来使用Magneto是不可能的。他们计划了一段时间以后的这个功能,但现在还不行。

+0

在我的问题,我写我改变它从一个按钮元素到输入元素。所以我不认为这是问题。 – jyoseph