我正在尝试了解现有的软件,并且已经满足以下要求:
<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;
}
}
}
答案 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
委托给某些检查和表单提交触发。