我正在尝试使这段代码正常工作,我想要更改innerHTML
,但它会立即改变并恢复到初始状态。有帮助吗?
<!DOCTYPE html>
<html>
<head>
<script>
function click_me(){
alert('fdsfs');
var tweety=document.getElementById('text_this').innerHTML;
alert(tweety);
var text_area="<input type=text value='"+tweety+"'>";
alert(text_area);
document.getElementById('text_this').innerHTML=text_area;
}
</script>
</head>
<body>
<form name="form1">
<table border=1>
<tr>
<td>
<div id="text_this">123</div>
</td>
<td>
<button onclick="click_me();">Edit</button>
</td>
</tr>
</body>
</html>
答案 0 :(得分:4)
您的form
已提交。在按钮return false;
事件中添加onclick
。
<button onclick="click_me(); return false;">Edit</button>
或者,按下按钮type='button'
(这是更好选项)
<button onclick="click_me();" type='button'>Edit</button>
原因是,如果type
未指定,则默认情况下按钮submit
为type
。
来自MDN,
提交:按钮将表单数据提交给服务器。这是 如果未指定属性,或者属性为,则为default 动态更改为空值或无效值。
答案 1 :(得分:1)
<!DOCTYPE html>
<html>
<head>
<script>
function click_me(){
alert('fdsfs');
var tweety=document.getElementById('text_this').innerHTML;
alert(tweety);
var text_area="<input type=text value='"+tweety+"'>";
alert(text_area);
document.getElementById('text_this').innerHTML=text_area;
}
</script>
</head>
<body>
<form name="form1">
<table border=1>
<tr>
<td><div id="text_this">123</div></td>
<td><button onclick="click_me();return false;">Edit</button></td>
</tr>
</table>
</form>
</body>
</html>
在onclick事件中添加了一个返回false语句。没有它,表单会被提交并且页面会重新加载
jsfiddle here