0

我一直在尝试对此进行 JS Fiddle,但似乎无法实现,因为我的 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 被解雇了?如何在表单加载时重置它?

4

1 回答 1

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

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

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

我想你的代码中一定有一些错误,这就是你的 javascript 出现问题的原因。

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

即使您的 HTML 来自外部动态,请尝试将其作为静态 html 放在 jsfiddle 中,这将帮助您跟踪和解决问题。

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

于 2013-06-03T14:41:38.077 回答