Удаление проверки формы приводит к тому, что форма не отправляется? - PullRequest
1 голос
/ 06 октября 2011

Я удалил почти все ссылки .js в моей теме Magento. В частности, я удалил щелчок кнопки «Добавить в корзину».

в template/catalog/product/view/addtocart.phtml Я удалил onclick="productAddToCartForm.submit(this)

in 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 ?>" />

Когда я это делаю, форма отправляется, но я получаю «Страница не найдена», URL-адрес, на который я перехожу, выглядит следующим образом /checkout/cart/add/uenc/aHR0cDovLzcwLjMyLjc0LjQ2L3J0bF9tYWdlbnRvL2luZGV4LnBocC9jYXRhbG9nL3Byb2R1Y3Qvdmlldy9pZC8xNQ,,/product/15/

Разве нельзя отправить форму по старинке в Magento без javascript? Если да, можете ли вы дать некоторые советы?

Мой план состоял в том, чтобы подключить мою собственную проверку jQuery (что довольно просто, мне просто нужно проверить, что поле qty имеет длину) и избавиться от некоторой нелепости кода выше.

1 Ответ

1 голос
/ 06 октября 2011

Я не знаю как и не знаю почему, но когда я отключаю «Использовать перезаписи веб-сервера», он работает со стандартной кнопкой отправки.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...