无法触发仅刷新javascript的一部分

无法触发仅刷新javascript的一部分,javascript,refresh,boolean,Javascript,Refresh,Boolean,这个问题的其他答案涉及计时,而这个问题涉及刷新if语句中的一部分javascript 加载HTML页面后,有一个select元素可见。根据选择的选项,将显示一组不同的输入字段 我最初的问题是,当用户重新点击按钮时,我使用的“提交”功能将在旧的输入字段上重新绘制相同的输入字段,造成混乱。当用户单击submit时,您会看到相同的输入字段被绘制的次数相同 我添加了一个名为checkBool的函数来检查表单是否已绘制。如果有,它将调用window.location.reload函数。如果没有,它将调用我

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

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

我最初的问题是,当用户重新点击按钮时,我使用的“提交”功能将在旧的输入字段上重新绘制相同的输入字段,造成混乱。当用户单击submit时,您会看到相同的输入字段被绘制的次数相同

我添加了一个名为checkBool的函数来检查表单是否已绘制。如果有,它将调用window.location.reload函数。如果没有,它将调用我的提交函数

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

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

下面是我的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函数。

我的选择是将不同的表单绘制到不同的div中,最初不会显示任何表单。选择框或submit按钮的onchange事件会在此divs、setting.style.visibility='hidden'或'visible'之间循环,具体取决于这是否是请求的表单


这还有一个可用性优势,即如果用户在开始填写表单后改变了主意,随后又改变了主意,那么他的输入仍然存在。

我找到了问题的答案

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

我可以有策略地将元素放置在div中并使用removeChild函数,而不是隐藏元素并在不同的位置留下巨大的间隙

下面是一个如何工作的例子

这是我的html:

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

</div>
因此,当用户单击draw按钮时,就会调用draw函数。此函数用于创建输入字段

我已经创建了自己的函数,可以用我传递的变量绘制一个输入字段。这就是InputField函数的全部内容

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

擦除函数获取名为“parent”的父元素和在本例中称为“child”的子元素,您可以看到我将名称“child”传递到了InputField函数中

然后使用代码的remove.Childchild部分删除子元素


如果您将jquery下载到您的网页中,您可以使用removeDiv函数来做同样的事情。

冒着听起来愚蠢的风险,您是否考虑过简单地禁用提交按钮onclick?仅供参考,您永远不应该使用新的布尔值。或者如果布尔值==true…Karim-我将onclick切换为checkBool。Johnny Craig-提交功能非常强大。基本上,它首先从select元素获取一个名为goal的变量值。然后,如果goal==none,它将使boolean=0。然后打印一条错误消息。如果目标==肥胖,则布尔值=1;然后它将调用所有绘制表单的函数。如果goal==w/e else boolean=1,则调用一组不同的forms函数。唯一的问题是,当visibility设置为hidden时,它会在页面中留下一个间隙。有8个表单,每个表单都有自己的div。我声明所有这些div最初都是隐藏的,但当第7个div设置为可见时,它将显示在页面顶部,与页面顶部有一个巨大的间隙。我提到的问题的解决方法是重新排序元素,以便没有间隙。
    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);


}