多部分表单 - 尝试停止默认的href行为

时间:2015-10-13 15:40:42

标签: javascript php jquery html forms

让我第一次使用前进和后退控件进行多部分表单。最初的想法是,在您完成所有必填字段之前,您无法跳出页面。我使用多个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就是答案。

感谢您的时间和阅读。

1 个答案:

答案 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;
        }