模态弹出重新打开javascript不起作用

时间:2013-06-03 14:28:11

标签: javascript jquery-ui

我一直试图做一个JS小提琴,但似乎不能让它发生,因为我的javascript通过PHP控制器加载它的html。

然而

我有一个JQuery UI模式弹出窗口包含适当的视图,它是一个来自。我在这个表单上有一些JS,根据选择框显示和隐藏div:

  function showDiv(divName)
{
document.getElementById(divName).style.display='';
}
function hideDiv(divName)
{
document.getElementById(divName).style.display='none';
}
function toggleOpDiv(showID)
{
if (showID == '1')
    {
    hideDiv('plus');
    hideDiv('mult');
    showDiv('perc');
    }
else if (showID == '2')
    {
    hideDiv('mult');
    hideDiv('perc');
    showDiv('plus');
    }
else if (showID == '3')
    {
    hideDiv('plus');
    hideDiv('perc');
    showDiv('mult');
    }
else
    {
    hideDiv('plus');
    hideDiv('mult');
    hideDiv('perc');
    }
}

然后通过以下方式简单地触发:

<select id="frm_source" name="operator" onchange="toggleOpDiv(this.value)">
                            <option value="1">Percentage</option>
                            <option value="2">Plus/Minus</option>
                            <option value="3">Multiplier</option>
                    </select>

这正如我所料,但是当我关闭盒子并重新打开它时,根本没有JS工作。

我读过这是因为Ajax被解雇了?如何在表单加载时重置此项?

1 个答案:

答案 0 :(得分:0)

function showDiv(divName)
{
document.getElementById(divName).style.display = '';
}

我认为你的意思是将显示设置为阻止这样:

document.getElementById(divName).style.display = 'block';

我猜你的代码中必定会出现一些错误,这就是为什么你的javascript会破坏某些内容的原因。

尝试使用FireBug检查您的网站在打开对话框之前是否包含任何错误。

即使您的HTML是从外部动态生成的,请尝试将其作为静态html放在jsfiddle中,这样可以帮助您跟踪和解决问题。

除此之外,如果没有看到完整的例子/ jsfiddle,那将是猜测。