如果已经提出这个问题,我真的很抱歉,但我的搜索技巧并没有找到类似的东西。
所以我有一个包含多个小节的表单。 我需要隐藏/显示子部分并“模拟”页面,就像它有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)做我想做的更好/更清洁的方式
任何建议都将受到高度赞赏。
答案 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;
这会产生改变的错觉!