为什么我的 HTML 按钮刷新页面?/为什么我不能让我的新 HTML DOM 元素插入到我的页面中
Why do my HTML buttons refresh the page?/Why can't I get my new HTML DOM Element to insert into my page
这
应该非常简单,但由于某种原因,我似乎无法让它工作。我对JS很陌生,我主要使用W3学校来学习(尽管我已经发现了MDN(Mozilla开发人员网络),这已被证明非常有用。
我正在尝试创建一个新的div,将几个子项附加到其中,然后将新的div 插入到 HTML 表单中。
目前,我只是尝试运行一些测试用例,以确保我可以让基本的JS工作。我不知道我做错了什么。有谁知道我在这里搞砸了哪里?
function AddQueryBox(){
window.alert("Add QueryBox");
var NewQBox = document.createElement('div');
document.createElement('div');
NewQBox.appendChild(document.createTextNode("Testing"));
document.getElementById("1").appendChild(NewQBox);
//document.body.appendChild(NewQBox);
}
<div align="right" id="1">
<select onchange="SwitchDatabaseSet()" name="DBSetList" form="DBSetSelector" id="DBSetSelector">
<option value="' . $DBSet->DBSetName . '">OPTION</option>
<option value="' . $DBSet->DBSetName . '">Option</option>
</select>
</div>
<Form>
<div>
<div class="QueryBox" name="QBox">
<select>
<option>Option</option>
</select>
<input type="text"></input>
<button>-</button>
</div>
<div><button onclick="AddQueryBox()">+</button></div>
</div>
</Form>
脱轨:这个问题发生了一个非常奇怪的转折......我的代码在堆栈溢出上完美运行...但不是在 XAMPP(开发环境)中...有人对潜在原因有任何想法吗?
编辑:显然代码正在我这边工作。但是我的浏览器在添加元素后立即刷新 - 并删除元素。因为我的刷新率太快,所以我没有看到变化。有人知道为什么+会刷新浏览器吗?
您的页面正在重新加载,因为按钮正在提交您的表单。
默认情况下,提交将重新加载页面以显示表单错误或提交操作的结果。 正如您所发现的,最干净的解决方法是指定按钮类型。
<button type="button">
而不是你的
<button type="submit">
点击按钮后,HTML 页面立即刷新。因为我的网络和加载时间很快,所以我没有注意到发生了什么。
代码实际上在 XAMPP 中运行良好,它只是执行以下操作:
加载页面>用户单击按钮->插入 DIV->立即刷新(刷新太快,无法看到"插入 DIV"发生)
我发现的原因是,如果您在HTML按钮上不包含"type"属性,它将刷新页面。因此,解决方案是包含"type="button"作为HTML按钮标签的属性,如下所示:
<div><button type="button" onclick="AddQueryBox()">+</button></div>
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 知道为什么我的旋转木马不会自动更改图片吗
- 为什么我的d3.jsselectAll+过滤器没有过滤
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- 为什么我的点击事件没有使用 react js 触发
- 为什么我的JavaScript堆栈排序函数不起作用
- 为什么使用immutableJS我的状态没有改变
- Don'我不明白为什么我的setInterval+jQuery;不起作用
- 如何在angular js中使用指令.不适用于我的情况,为什么
- 我的jquery代码不起作用.为什么?
- 为什么不't Express呈现我的React应用程序
- 为什么我的按钮组件提交它所在的表单
- 为什么不是'我的JS滑块正在工作
- 为什么不是'我的函数在解析云代码中工作吗?当我在Angular和Express中测试时,它是有效的
- 为什么不'当单元测试出现解析错误时,我的因果报应测试会失败
- 我不知道为什么我的代码是错误的?又有什么错
- 为什么我的While循环不起作用
- 为什么我的控制器没有启动函数.js脚本
- 为什么我的上下文选择器和.buttonset()在ie中花费了这么长时间
- 为什么我的函数没有被调用呢