使用 JavaScript 更改 HTML 元素
Changing HTML elements with JavaScript
我正在学习JavaScript,我正在尝试创建一个"圆计算器",它将通过表单获取用户输入并返回圆的面积和周长。除了在ID为"circleData"的段落中显示结果外,它都可以工作。提交表单后,它会显示几分之一秒,然后消失。
我希望 Circle 方法(变量"文本")的结果保留在段落中,直到用户再次提交表单(当它应该填写新数据时)。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>JavaScript Test</title>
</head>
<body>
<h1>A Circle Calculator</h1>
<form name="Circle" onsubmit="printCircle()" method="post">
Enter the radius:<br>
<input type="text" name="Radius"><br><br>
Enter the units:<br>
<input type="text" name="Units"><br><br>
<input type="submit" value="Submit"><br>
</form>
<p id="circleData"></p>
<script type="text/javascript">
var Circle = function(radius){
this.radius = radius;
}
Circle.prototype = {
get _radius(){
return this.radius;
},
get _area(){
return Math.PI * (this.radius * this.radius);
},
get _perim(){
return this.radius * (Math.PI * 2);
},
set _radius(radius){
this.radius = radius;
}
}
var aCircle = new Circle();
var printCircle = function(){
aCircle._radius = document.forms["Circle"]["Radius"].value;
var units = document.forms["Circle"]["Units"].value;
var text = "A circle with the radius of " + aCircle._radius + units + " has a circumference of " + aCircle._perim.toFixed(2) + units + " and an area of " + aCircle._area.toFixed(2) + units;
document.getElementById("circleData").innerHTML= text;
}
</script>
</body>
</html>
在函数中添加return false;
。
var printCircle = function(){
aCircle._radius = document.forms["Circle"]["Radius"].value;
var units = document.forms["Circle"]["Units"].value;
var text = "A circle with the radius of " + aCircle._radius + units + " has a circumference of " + aCircle._perim.toFixed(2) + units + " and an area of " + aCircle._area.toFixed(2) + units;
document.getElementById("circleData").innerHTML= text;
// prevent the form from its natural bahavior
return false;
}
表单的 onSubmit
事件阻止表单在收到false
时提交数据。
<form name="Circle" onsubmit="return printCircle();" method="post">
或者,您可以以更好,最有效的方式进行操作。
var printCircle = function(){
event.preventDefault();
...
}
然后:
<form name="Circle" onsubmit="printCircle();" method="post">
阅读更多
onsubmit="printCircle();return false;"
相关文章:
- 我应该怎么做才能避免在网页上移动元素(html、css、jQuery)
- 更改元素HTML,但忽略最后一个子项
- 增加在选择元素HTML中搜索的时间
- Jquery无法获取元素html
- 从所选元素 html 上方的元素获取属性值
- 在 JS 的单选按钮元素 (HTML) 中使用 title 属性
- 如何在页面上播放每个音频元素(HTML,JQuery,Javascript)
- 我需要一种新的方法来检测元素 HTML 是否有更改
- 获取父元素 html 以及子内容
- AngularJS指令:如何在ng-repeat中动态更改元素html
- html 属性中的引号被标记为 ”来自元素.html()的结果
- 在指令's链接中替换angular元素html
- 如果元素有子元素html元素
- 如何下推表格中的元素- HTML
- 如何在纯javascript中使用变量插入数组值,如元素HTML
- jQuery textilate .js -如何“重置”元素HTML并重新启动动画
- 将元素HTML附加到新附加的textarea中
- 在添加类的情况下,CSS 3的过渡是否不能与模板元素(HTML 5)一起工作?
- jQuery没有更新DOM元素HTML
- 在jQuery中更快地替换元素HTML