Javascript 表格未提交即提交

Javascript 表格未提交即提交,javascript,html,forms,Javascript,Html,Forms,我有一个表单元素,没有输入type='submit'。我使用带有onclick的按钮来调用函数,如下所示: <form method='post' action='build_meet.html' id='meet_builder_form'> .... <button onclick='submit_this_form()' >Submit</button> </form> .... 提交 该功能定义为: function submit_t

我有一个表单元素,没有输入type='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();
}
函数提交此表单(){
var my_团队=[];
对于(var i=0;i
请注意,实际提交表单的行已被注释掉。当我单击按钮时,不会生成警报,表单仍会提交


想法?

阻止表单的默认操作,即
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();
}
函数提交此表单(e){
e、 预防默认值();
var my_团队=[];
对于(var i=0;i
HTML

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

....
提交
试试这个

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

....
提交

Kinjal是正确的。按钮的默认类型(未声明时)为“提交”。必须声明
type=“button”
以避免按钮提交表单。

未定义类型的按钮也会在某些浏览器上提交表单。因此type=“button”将修复此问题。