2014-10-12 1 views
0

У меня есть две функции во внешнем JS-файле, каждая функция должна быть выполнена для отправки соответствующей формы на отдельные страницы. Эти функции вызывают из функции инициализации, которая сама загружается в window.onload. Только первая функция (в зависимости от того, что поставлена ​​первой) работает (таким образом, в приведенном ниже примере totalOrder() для функций page.html страницы validateForm() для страницы register.html нет). Я хочу, чтобы оба работали на своих соответствующих страницах.Первая функция, выполняющая только две функции, вызываемые .представление двух форм

Извините неточный язык, я ОЧЕНЬ новичок в JavaScript. Я подозреваю, что у меня что-то не хватает.

function totalOrder() { 
alert("total order"); 
} 

function validateForm() { 
    alert("validation"); 
} 

function init() { 
    var orderForm = document.getElementById("order_Form"); 
    var regForm = document.getElementById("reg_Form"); 

    regForm.onsubmit = validateForm; 
    orderForm.onsubmit = totalOrder; 
} 

window.onload = init; 

Форма в register.html:

<form id="reg_Form" method="post" action="#" name="registration">... <input type="submit" id="btnSubmit" value="Submit"></form> 

Форма в order.html:

<form id="order_Form" method="post" action="#" name="order">... <input type="submit" id="btnSubmit" value="Submit"></form> 

отлично работает, если функция вызывается из HTML-страниц, но это не является идеальным , например:

<form id="reg_Form" method="post" action="#" name="registration" onsubmit="return validateForm()"> 

Usin g addEventListener вместо onsubmit испытывает ту же проблему, например.

function init() { 
var orderForm = document.getElementById("order_Form"); 
var regForm = document.getElementById("reg_Form"); 

orderForm.addEventListener("submit", totalOrder); 
regForm.addEventListener("submit", validateForm); 

}

ответ

0

Похоже, у вас есть две страницы, которые каждый имеют только одну из форм, но вы пытаетесь изменить обе формы в JavaScript. Вы могли бы использовать что-то вроде этого:

function init() { 
    var orderForm = document.getElementById("order_Form"); 
    var regForm = document.getElementById("reg_Form"); 

    if (regForm != null) regForm.onsubmit = validateForm; 
    if (orderForm != null) orderForm.onsubmit = totalOrder; 
} 

образом, вы только попытаться изменить форму, которая на самом деле существует на странице, которая использует код JS.

Смежные вопросы