HTML表单方法=“发布”

时间:2016-01-08 08:58:18

标签: html forms

我正在尝试了解现有的软件,并且已经满足以下要求:

<form name="AppForm" method="post" enctype="multipart/form-data" action="" onsubmit="return fnPreSubmit()">

<input id="submit" type="submit" value="Apply now"/>

</form>

在屏幕上有一个带有“立即申请”文本的按钮,根据我的理解,HTML的input标签会创建此按钮。

我试图了解按下按钮时代码中会发生什么。

以前,当我使用表单时,action有一个值,例如页面名称,所以我可以找出代码的去向。

在这种情况下,action没有值。从在互联网上搜索,这似乎意味着表单被提交到同一页面。

我的问题是,如何判断代码提交到页面的哪个位置?或者,换句话说,如何在按下按钮后计算代码的运行情况?

是否会再次重新加载页面,并且表单中填写的所有数据都会发布到页面中,并且页面会加载已加载的数据?

这是JS方法fnPreSubmit和任何相关方法。在我看来,这些表单在回发到同一页面之前验证了表单吗?

    function fnPreSubmit()
    {
        var oFrm = document.forms['AppForm'];

        // First set any disable inputs back to enabled so that the value gets sent
        for (var ii = 0; ii < arrROC.length; ii++)
        {
            var oReadOnlyInput = oFrm[arrROC[ii][0]];
            if (oReadOnlyInput.disabled)
            {
                oReadOnlyInput.disabled = false;
            }
        }

        // Sort out the date fields
        fnProcessDateFields(oFrm);

        dataLayer.push({'event': 'ApplicationSubmit'});

        return true;
    }

    function fnProcessDateFields(pFrm)
    {
        var sName = "";

        if (pFrm['datefield'] != undefined)
        {
            for (var ii = 0; ii < pFrm['datefield'].length; ii++)
            {
                sName = pFrm['datefield'][ii].value;

                pFrm[sName].value = pFrm['date_dd_' + sName].value + '/' + pFrm['date_mm_' + sName].value + '/' + pFrm['date_yyyy_' + sName].value;
            }               
        }
    }

3 个答案:

答案 0 :(得分:4)

操作上的值可能为空,但正如您所见, form 标记具有 onsubmit 属性,一旦您单击该按钮,该属性将触发。要在单击按钮时检查表单正在执行的操作,您可以参考 onsubmit 属性中指定的javascript函数。

答案 1 :(得分:2)

看起来表单实际上是由一些Javascript代码提交的。行 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim dialogResult As Boolean = configWizard.ShowDialog() Try Catch ex As Exception MessageBox.Show(ex.ToString) End Try MsgBox(dialogResult) End Sub 将对fnPreSubmit函数的调用绑定到submit-event。看一下这个功能,你可能会找到表格提交到那里的网址。

更新:在您发布的JS代码中,onsubmit="return fnPreSubmit()" - 事件被推送到'ActionSubmit'。在那里进一步追踪,必须在某处处理事件。

答案 2 :(得分:1)

表单属性action可以为空(表示表单数据将提交到同一页面)或其他页面(提交的数据将在该页面中处理)。

正如您所见,表单中包含enctype="multipart/form-data"

enctype属性指定在将表单数据提交给服务器时如何对其进行编码。

enctype属性只能与method="post"一起使用。

<强>的multipart / form-data的

没有字符被编码。使用具有文件上载控件的表单时需要此值

<input type="file">

最后,表单提交由javascript函数fnPreSubmit委托给某些检查和表单提交触发。