ここで問題があります。いくつかの div にいくつかのカスタム スタイルを設定して、それらを一時的に非表示にしました。ただし、ドキュメント書き込み関数を使用して外部の .js ファイルからテキストを生成すると、これらのカスタム スタイルがトリガーされないようです。
CSS:
<style type="text/css">
.section
{
display: none;
}
.section#form1
{
display: block;
}
表示を切り替える JavaScript 関数:
function toggleVisibility(newSection)
{
$(".section").not("#" + newSection).hide();
$("#" + newSection).show();
}
このページのほとんどのコンテンツを生成する再帰ループ関数のどこかに、これがあります
...
if (step != 1)
{
document.write("</div>");
}
document.write("<div id='form"+step+"' class='section'>");
...
JavaScript がフォームのすべての要素を特定の外部 div に出力する場所を割り当てるために、何らかのコードが必要ですか? 最初にすべての div が表示されている理由を理解できないようです。以前に同じコードを実行したところ、問題なく動作しました。おそらく、document.write の優れた代替手段でうまくいくかもしれません。document.write がすべてをオーバーライドしているように感じます。
$(document).ready(function()
{
$('#show-results').click(function()
{
$.post('JSAAN.php', function(data)
{
var pushedData = jQuery.parseJSON(data);
// Uses the function from loop.js
document.write("<form id='evalForm' onsubmit='return false;'>");
var fieldsetActive = 0;
loop(pushedData);
})
})
});
そして、ループ関数 (別のファイルにある人は次のように始まります:
function loop(obj) {
// Starts the form
$.each(obj, function(key, val) {
if($.isPlainObject(val) || $.isArray(val)) { // object, call recursively