无法触发刷新javascript的一部分

时间:2011-12-23 18:12:29

标签: javascript refresh boolean

这个问题的其他答案涉及时间问题,而这个问题涉及在if语句中刷新一部分javascript。

加载HTML页面后,可以看到一个选择元素。根据选择的选项,将显示一组不同的输入字段。

我最初的问题是,当用户重新点击按钮时,我所做的“提交()”功能将重绘相同的输入字段而不是旧的输入字段。您会看到在用户点击“提交”时多次绘制相同的输入字段。

我添加了一个名为checkBool()的函数来检查表单是否已被绘制。如果有,那么它将调用window.location.reload()函数。如果没有,它只会调用我的Submit()函数。

现在代码不再堆积输入字段了。相反,当我第二次点击提交按钮时,即使选择了不同的选项,绘制的表单也会消失。

我想要发生的是当用户选择其他选项并点击提交时,将删除当前表单并自动绘制新的表单集。

这是我的checkBool()函数:

var boolean = new Boolean();
function checkBool(){

    if(boolean==false){
        Submit();
    }else if(boolean==true){
        window.location.reload();
        boolean=0;
        Submit();
        return boolean;
    }
}

似乎window.location.reload()函数会立即重新加载脚本,浏览器永远不会执行“Submit()”函数。

2 个答案:

答案 0 :(得分:3)

我的选择是将不同的形式绘制到不同的div,最初没有显示。选择框或提交按钮的onchange事件循环显示此div,设置.style.visibility =' hidden'或者'可见'取决于这是否是要求的表格。

这也具有可用性优势,即如果用户在开始填写表单后改变主意,稍后改变主意,他的输入仍将存在。

答案 1 :(得分:0)

我找到了问题的答案。

我可以将所有元素一起删除,而不是刷新javascript。这就是我试图找到一种“刷新”页面的方法。

我可以策略性地将元素放在div中并使用removeChild()函数,而不是隐藏元素并在不同的位置留下巨大的空白。

这是一个如何运作的例子......

这是我的HTML:

<button type="button" onclick="draw()">Draw</button>
<button type="button" onclick="erase()">Erase</button>
<div id="parent">

</div>

这是我的javascript:

    function draw(){
     `docume`nt.getElementById("test").innerHTML=InputField("parent","child","text",5,10).value;
}

function erase(){
    var parent =document.getElementById("parent");
    var child = document.getElementById("child");
    parent.removeChild(child);


}

所以这里发生的是当用户点击按钮“draw”时调用draw()函数。此函数创建一个输入字段。

我创建了自己的函数,它将使用我传递的变量绘制输入字段。这就是InputField()函数的全部内容。

之后,用户点击“擦除”按钮调用擦除功能。

erase函数抓取名为'parent'的父元素和子元素(在本例中称为'child' - 你可以看到我将名称'child'传递给我的InputField()函数)

然后使用代码的remove.Child(子)部分删除子元素。

如果您将jquery下载到您的网页中,您可以使用removeDiv()函数执行相同的操作。