Javascript:在实际表单之外提交表单不起作用

时间:2010-05-03 13:04:33

标签: javascript

我正在尝试实现一种相当简单的触发机制,用于从tablegrid中删除多个项目。如果用户具有足够的访问权限,则他/她能够从表中删除多个用户。在表格中,我设置了复选框,每行/用户一个。复选框的名称为UsersToDeletep[],每行的值为唯一UserID

当用户点击“删除所选用户”按钮时,会进行简单验证,以确保至少选中了一个复选框。之后我调用我的简单函数Submit(form)。在form - 标签内调用时,该功能可以正常工作,我也用它来删除单个用户。

功能:

function Submit(form)
{   
    document.forms[form].submit();
}

我也提醒了document.forms[form]。结果如预期[object HTMLFormElement]。但由于某种原因,表单不会提交并发生页面重新加载。我有点困惑,似乎无法弄清楚我做错了什么。

更新

根据要求:主叫代码:

onclick="javascript:"内的代码:

if(CheckMinimumCheckedCheckboxes('FormUserList', 1) == true)
{ 
    if(confirm('Weet u zeker dat u de geselecteerde gebruiker(s) wilt verwijderen?')) 
    { 
        Submit('FormUserList'); 
    } 
} 
else 
{ 
    alert('U dient minimaal 1 gebruiker te selecteren welke u wilt verwijderen.'); 
}

在外部JS文件中分离函数。

function CheckMinimumCheckedCheckboxes(formName, minAmount)
{
    var totalChecked = 0;
    var totalElements = document.forms[formName].length;

    for(i = 0; i < totalElements; i++)
    {
        if(document.forms[formName][i].checked == true)     
        {
            totalChecked++;
        }
    }

    if(totalChecked >= minAmount)
    {
        return true;
    }

    return false;
}

function Submit(form)
{   
    document.getElementById(form).submit();
}

2 个答案:

答案 0 :(得分:1)

尝试使用getElementById()方法:

http://www.w3schools.com/jsref/met_doc_getelementbyid.asp

document.getElementById("frm1").submit();

http://www.w3schools.com/jsref/met_form_submit.asp

答案 1 :(得分:0)

永远不要在你的链接中放置一个空的'href =“”',并认为你稍后会在以后决定用onclick-eventhandler来处理link-element时填写它...严重的,它可以为您节省数小时的愚蠢测试。 :/