更改按钮行为(相同)按钮单击 - jquery

时间:2017-12-06 16:05:38

标签: javascript jquery

如果已经提出这个问题,我真的很抱歉,但我的搜索技巧并没有找到类似的东西。

所以我有一个包含多个小节的表单。 我需要隐藏/显示子部分并“模拟”页面,就像它有3个不同的部分一样。 无法访问源代码,因此必须通过在现有代码上应用的css / js来完成所有操作。 请记住,已经有一个按钮(我在这里称之为 continueBtn )按下时提交表单,我添加了一个后退按钮。假设所有变量(allSections,sectionOne等存在,它们不是问题)。

我创建了一个函数,根据我们所处的表单步骤显示/隐藏/更改文本;示例代码:

function showHideOnStep(step){

            allSections.hide();
            continueBtn.unbind('click');
            backBtn.unbind('click');

            switch (step){
                case 1:
                    sectionOne.show();      

                    continueBtn.attr('type','button');//make continue button to not submit
                    continueBtn.text("Go to step 2");

                    backBtn.click(function(){
                        //go to previous browser page, literally
                    })
                    continueBtn.click(function(){
                        showHideOnStep(2);
                    })
                    break;
                case 2:
                    sectionTwo.show();
                    continueBtn.text("Go to step 3");
                    continueBtn.attr('type','button');//make continue button to not submit (in case it's a back from step 3)

                    continueBtn.click(function(){
                        showHideOnStep(1);
                    })
                    backBtn.click(function(){
                        showHideOnStep(3);
                    })
                    break;
                case 3:
                    sectionThree.show();

                    continueBtn.text("Submit");

                    backBtn.click(function(){
                        showHideOnStep(2);
                    })

                    continueBtn.removeAttr('type');//make continue button to submit again
                    break;
            }
        }

所以我们假设默认情况下会应用页面加载和showHideOnStep(1)。一切都很好,单击返回将返回,单击继续将转到步骤2。 但现在,当点击继续时,它将跳转到提交,而不是先转到案例3。

就像实际的“点击”结束后,它从按钮中删除了“type = button”并将其传播到该按钮中。 从步骤2退回时会发生同样的问题。而不是进入第1步,它将会恢复正常。

我确定有

a)一个相当简单的解决方案 b)做我想做的更好/更清洁的方式

任何建议都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

请包含按钮html脚本!如果按钮是由表单提交标签创建的,则它将提交而不会转到下一个。尝试使用按钮标记。



//  for checking
var secondbutton = false;

// checks if its been clicked
var firstb = document.getElementById('first');

function second() {
  if(secondbutton == false) {
    alert("first");
    firstb.innerHTML = "Second";
    secondbutton = true;
  }
  else {
    alert("second")
  }
}

<button id="first" onclick="second()">First</button>
&#13;
&#13;
&#13;

这会产生改变的错觉!