1 回答
TA贡献1878条经验 获得超4个赞
<form method="post" action="somephpfile.php" id="convert">
<input type="number" name="distance" id="distance" placeholder="distance">
<input type="submit" name="convertdist" value="Convert Distance">
</form>
当您单击提交按钮时,该表单将被提交。制作如下表格。
<form id="convert"> <!-- Taken out the attributes method and action -->
<input type="number" name="distance" id="distance" placeholder="distance">
<input type="button" name="convertdist" value="Convert Distance" onclick="convert()"> <!-- Changed the button type submit->button -->
</form>
对于 JavaScript,您必须将 JS 逻辑封装在一个函数中,并onclick在提交按钮期间调用它,例如:
<script>
function convert(){
var miles = parseInt(document.getElementById("distance").value);
var kilometers = (miles * 1.609344);
var answer = document.createElement("P");
answer.innerHTML = `"${miles} miles converts to ${kilometers} kilometers"`;
document.getElementById("answer").appendChild(answer);
}
</script>
你做错的事情是:
转换+附加答案应该是可调用的,这意味着它应该是一个函数。
每当单击按钮时都应调用转换函数。因此,它应该绑定到
onclick
转换按钮的事件。无论如何,任何带有按钮类型的 HTML 表单
submit
都将提交到属性指定的目标,除非您在 JS 中阻止它。你做到了,但不是在应该做的地方。action
event.preventDefault()
您的代码中的以下内容从您放置的位置没有意义。
document.getElementsByName("convertdist").addEventListener("click", function(event){
event.preventDefault();
document.getElementById("answer").appendChild();
});
将工作版本放在这个 fiddle中。找时间退房。
- 1 回答
- 0 关注
- 83 浏览
添加回答
举报