登録を処理するためにアコーディオンを設定しました。ユーザーが別のパネル タブをクリックしたときに、各パネルに入力されたデータを検証したいと考えています。各パネルに続行ボタンがあり、ユーザーがそれを使用して次のパネルに移動するときに、心ゆくまで検証できます。
私の問題は、アコーディオン タブを個別にクリックすることもできることです (編集目的でスキップできるようにしたいです) が、それらのイベントについても検証したいと思います。
たくさんの検索を行いましたが、満足のいく答えが見つかりませんでした。私は Javascript と jQuery をまったく初めて使用するので、コード スニペットがある場合は、それらを徹底的に説明してください。
これは簡単な問題です ( などに似ていon-click
ます)。私はまだ答えを見つけていないことに非常に驚き、イライラしています。
編集:
エリック、これを機能させることができませんでした。これが私のバージョンです。頭の部分に入れました。過去に確実に機能したテストコードがいくつかあります(タブの1つのラベルを変更します)。このコードがうまくいったと思いますか? とにかく、あなたの助けに感謝し、お互いを十分に理解したと思います.
// 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
}
})()
} );