Форма отправки Javascript в форме содержит кнопку отправки - PullRequest
1 голос
/ 15 ноября 2011

Вот сценарий: у меня есть 2 кнопки, одна в форме с типом и именем submit, а другая - ссылка, которая отправляет форму с событием onclick.

Так как мойФорма уже имеет кнопку отправки с именем submit, функция javascript form.submit () не отправляется.Поскольку я использую фреймворк, я не могу изменить имя кнопки отправки.

Я пытался добавить стиль display: none к кнопке отправки, но это не помогло.

Любойпредложения ??

код

<form method="post" action="../../process_form.php">
submit button
<input type="submit" value="submit" class="button" id="label_forsubmit" name="submit">

link
<a class="standart_link" onclick="javascript: YAHOO.wsc.ExpensecontrolOperationsSubmit('a','0','b');" href="javascript:">cancel</a>
</form>

часть Javascript

   var btn = document.getElementById(btn_div);
   var parentForm = YAHOO.util.Dom.getAncestorByTagName(btn_div, 'form' );
   parentForm.submit.style.disabled = 'none';
   parentForm.submit();

1 Ответ

2 голосов
/ 15 ноября 2011

Я бы рекомендовал предупредить создателей фреймворка. Кое-что серьезное должно быть исправлено в источнике проблемы, и изменение имени элемента должно стать для них небольшим изменением.

В то же время вы можете удалить элемент формы во время события click, сохранив его во временной переменной. Затем вызовите submit и, наконец, добавьте кнопку обратно во время события onsubmit.

Примерно так, например:

(function () { 
    var btn, sibling, 
        form = document.getElementById("myForm");

    window.linkSubmit = function () {
        if (form.submit.tagName) { // is submit actually an element?
            btn = form.submit;
            sibling = btn.nextSibling;
        }

        YAHOO.wsc.ExpensecontrolOperationsSubmit('a','0','b');
    }

    form.onsubmit = function () {
        if (btn) {
            this.insertBefore(btn, sibling);
            btn = sibling = void 0;  // Reset the variables
        }
    }
})();

И, изменив разметку ссылки на это:

<a class="standart_link" onclick="linkSubmit()" href="javascript:">cancel</a>

В качестве примечания я бы рекомендовал полностью абстрагировать ваш код JS от разметки HTML.

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