Форма отправляется без отправки

0

У меня есть элемент формы без ввода типа = 'submit'. Я использую кнопку с onclick для вызова функции следующим образом:

<form method='post' action='build_meet.html' id='meet_builder_form'>
....
<button onclick='submit_this_form()' >Submit</button>
</form>

Функция определяется как:

function submit_this_form() {
    var my_teams = [];
    for ( var i = 0 ; i < window.my_meet.teams.length; i++ ) {
        my_teams.push( window.my_meet.teams[i].team_id );
    }
    var my_teams_str = my_teams.join('|');
    document.getElementById('team_ids_list').value = my_teams_str;
    alert ( my_teams_str );
    //document.getElementById('meet_builder_form').submit();
}

Обратите внимание, что строка, которая фактически отправляет форму, закомментирована. Когда я нажимаю кнопку, предупреждение не генерируется, и форма все равно.

Мысли?

  • 2
    кнопки без определенного типа также отправляют форму в некоторых браузерах. так что type = "button" это исправит.
Теги:
forms

3 ответа

0
Лучший ответ

Попробуй это,

<form method='post' action='build_meet.html' id='meet_builder_form'>
....
<button type="button" onclick='submit_this_form()' >Submit</button>
</form>
1

Предотвратите действие по умолчанию для формы, которая submit.

function submit_this_form(e) {
    e.preventDefault();
    var my_teams = [];
    for ( var i = 0 ; i < window.my_meet.teams.length; i++ ) {
        my_teams.push( window.my_meet.teams[i].team_id );
    }
    var my_teams_str = my_teams.join('|');
    document.getElementById('team_ids_list').value = my_teams_str;
    alert ( my_teams_str );
    //document.getElementById('meet_builder_form').submit();
}

HTML

<form method='post' action='build_meet.html' id='meet_builder_form'>
....
<button onclick='submit_this_meet(event)' >Submit</button>
</form>
0

Кинджал прав. Тип по умолчанию для кнопки (если не объявлен) - "отправить". Вы должны объявить type="button" чтобы кнопка не отправила форму.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню