我有一个手风琴来处理注册。当用户单击不同的面板选项卡时,我想验证在每个面板上输入的数据。我在每个面板上都有一个继续按钮,并且当用户使用它转到下一个面板时,我能够验证我内心的内容。
我的问题是他们也可以在手风琴选项卡上独立单击(我希望他们能够跳过以进行编辑),但我也想验证这些事件。
我做了一堆搜索,但没有找到满意的答案。我对 Javascript 和 jQuery 非常陌生,所以如果你有代码片段给我,请彻底解释它们。
这应该是一个简单的问题(类似于on-click
等)。我还没有找到答案,我感到非常惊讶和沮丧。
编辑:
埃里克,我无法让它工作。这是我的版本。我把它放在头部。我有一些过去对我来说可靠的测试代码(更改其中一个选项卡上的标签)。我假设这段代码对你有用?无论如何,感谢您的帮助,我希望我们已经充分了解彼此。
// add capability to detect when accordion tab has been clicked
RegFormAccordion.addEventListener('click', function(e){
var btnElement;
(function findAccordionButton(el){
//e.target is the original element actually clicked on
//the event bubbles up to ancestor/parent nodes which is why you can listen at
//the container
if(!btnElement){ btnElement = e.target; }
else { btnElement = el; }
if(e.target.className !== 'accordionBtn')
{
findAccordionButton(btnElement.parentNode);
}
else
{
var curr_panel_index = RegFormAccordion.getCurrentPanelIndex();
document.getElementById("verify-reg-panel-label").innerHTML = "Index = " + curr_panel_index; // test code to see if it's even getting here
if (curr_panel_index == 1) // contact section
{
ValidateContact();
}
else if (curr_panel_index == 2) // payment section
{
ValidatePayment();
}
UpdateVerifyPanel(); // update contents of verification panel
}
})()
} );