JavaScript上的表单和innerHTML问题
Problems with form and innerHTML on JavaScript
昨天我编写了一个代码,在文本内容中显示您在表单输入中所写的内容。我写了这个:
<p id="demo">
Show code
</p>
<form>
<input type="text" id="clo" />
<button onclick="myFunctionn()">Try it</button>
<script type="text/javascript">
//<![CDATA[
function myFunctionn() {
var bub = document.getElementById("clo").value
var str = document.getElementById("demo").innerHTML;
var res = str.replace("code", bub);
document.getElementById("demo").innerHTML = res;
}
//]]>
</script>
</form>
此代码的问题在于,当您单击按钮时,它会替换文本几次,然后刷新页面。我该怎么解决这个问题?
不要绑定click
处理程序。在表单上绑定一个submit
处理程序并防止默认行为。
<form>
<input type="text" id="clo" /> <button type="submit">Try it</button>
</form>
<script>
function myFunction(e) {
var bub = document.getElementById("clo").value
var str = document.getElementById("demo").innerHTML;
var res = str.replace("code", bub);
document.getElementById("demo").innerHTML = res;
e.preventDefault();
}
document.querySelector('form').addEventListener('submit', myFunction, false);
//and keep your JS out of your HTML
</script>
这具有可访问性的优点,并允许在用户在文本字段集中时点击Enter时进行隐式提交等功能。
将type="button"
添加到按钮中。按钮的默认类型是submit
,因此它将您的表单提交给服务器,服务器将刷新页面。非提交按钮不会导致表单提交,因此只会执行Javascript。
相关文章:
- JavaScript上的表单和innerHTML问题
- Javascript innerHTML超出范围的问题
- InnerHTML创建问题,没有't加载顺序正确,可能存在处理问题
- document.write和document.innerHTML以及其他javascript问题之间有什么区别
- javascript中标签的innerHTML问题
- IE9 问题:动态创建(通过 innerHTML)选项按钮和复选框不起作用
- 无法设置属性“innerHTML”的值:计时问题
- 获取内部文本并将其拆分.使用innerHTML和split的Javascript问题
- 我的X O游戏JQuery代码在处理innerhtml时遇到了一些问题
- 更改基本HTML/Javascript页面的innerHTML时出现问题
- 关于innerHTML的几个问题
- innerhtml出现奇怪的firefox问题
- 为什么我的innerHTML覆盖父类的样式属性?以及我该如何解决这个问题
- 这个jQuery元素innerHTML语句有什么问题
- Javascript -通过innerHTML更新值时出现问题
- 不能设置属性'innerHTML'零.AJAX (java)的问题
- 滚动调整在非ie浏览器加载图像(JavaScript/DOM)后不能正常工作;定时问题w/innerHTML
- IE6和ie7的innerHTML问题
- 使用Javascript的innerHTML出现问题
- 文档的自关闭标签问题.Javascript中的innerHTML