Лично?Я бы держал их каждый в div и условно отображал их.Если у вас нет действительно веской причины, нет никаких причин, по которым вы не можете загрузить это сразу (и это приводит к еще одной точке отказа использовать AJAX для фактической загрузки div здесь).
function hideElements()
{
// using jQuery, I would probably loop and use a class selector here.
// but this is an example.
document.getElementById("tag1").style.display = "none";
document.getElementById("tag2").style.display = "none";
document.getElementById("tag3").style.display = "none";
}
в качестве слушателяна переключателях (вероятно, через что-то вроде $ ("# tag1, # tag2, # tag3) .click, если вы используете jQuery, onclick или addEventListener, если вы делаете это голыми способами)
function showElement( tag ) //tag == "tag1" through "tag3"
{
hideElements();
document.getElementById("tag1").style.display = "inline"
}
Если AJAX является обязательным (логика является обязательным требованием для отображения формы), я бы по-прежнему загружал их заранее и отображал только условно формы, основанные на ответе отфоны.