2011-10-06 56 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