让我第一次使用前进和后退控件进行多部分表单。最初的想法是,在您完成所有必填字段之前,您无法跳出页面。我使用多个a hrefs
来提交表单,其中一组a hrefs
是菜单的一部分,它包含在表单页面中,没有表单页面。所以我的想法是使用javascript,读取放置在标签中的pageId来决定是否在点击href之后它应该作为表单提交,或者只是按照默认的href =""链接。所以我尝试了以下内容:
function setvalue(whatvalue){
alert (document.getElementById('subtype').value);
if (pageId != "gettingstarted"){
alert ("Doesn't equal gettingstarted so submit");
if (whatvalue){document.getElementById('subtype').value=whatvalue;}
$('#myForm').submit();
return false;
}
}
将这些链接用于默认的href =""和onclick触发js函数
<a onclick="setvalue('gettingstarted.php');" href="gettingstarted.php">Get Started</a>
<a onclick="setvalue('form1.php');" href="form1.php">Form One</a>
<a onclick="setvalue('form2.php');" href="form2.php">Form Two</a>
<a onclick="setvalue('preview.php');" href="preview.php">Preview</a>
您点击href,然后如果它不是起始页面(不包含任何表单),则会对表单进行调整,然后提交并默认href =&#34;&# 34;停止执行(返回false;)。如果是起始页面,则js不执行任何操作,理论上将遵循href链接。
虽然href链接没有被停止。如果我将href更改为&#34;#&#34;它工作,因为我可以看到页面加载的闪烁,然后PHP表单检查器开始。但是链接到位后,链接位置被加载,提交(和后续表单检查)不会出现有机会发生。阅读一些与停止默认行为相关的线程,并认为返回false就是答案。
感谢您的时间和阅读。
答案 0 :(得分:0)
事件需要在属性
中返回 <a onclick="return setvalue('gettingstarted.php');" ..... />
你还需要在这里添加一个返回true,这将允许事件继续。
function setvalue(whatvalue){
alert (document.getElementById('subtype').value);
if (pageId != "gettingstarted"){
alert ("Doesn't equal gettingstarted so submit");
if (whatvalue){document.getElementById('subtype').value=whatvalue;}
$('#myForm').submit();
return false;
}
return true;
}