我创建了一个代码,用于添加输入值并在第三个输入框中显示结果,但结果总是 Nan ,如何解决这个问题?
<?php
for ($i=0; $i < 5 ; $i++) {
?>
<input type="number" name="" id="pop<?php echo $i; ?>" >
<input onKeyup="su<?php echo $i; ?>();" type="number" name="" id="ta<?php echo $i; ?>">
<input type="number" name="" id="display<?php echo $i; ?>">
<br>
<script>
function su<?php echo $i; ?>(){
var x = document.getElementById("pop<?php echo $i; ?>");
var y = document.getElementById("ta<?php echo $i; ?>");
var sum;
if (y != ''){
sum = parseFloat(x + y);
document.getElementById("display<?php echo $i; ?>").value = parseFloat(x + y);
}
}
</script>
<?php
}
?>
答案 0 :(得分:1)
您需要从pop
和ta
获取值并添加这些值,而不是元素本身。 SEE:
function su<?php echo $i; ?>(){
var x = parseFloat(document.getElementById("pop<?php echo $i; ?>").value); // HERE
var y = parseFloat(document.getElementById("ta<?php echo $i; ?>").value); // HERE
var sum;
if (y != ''){
sum = parseFloat(x + y);
document.getElementById("display<?php echo $i; ?>").value = x + y;
}
}
</script>
答案 1 :(得分:0)
更改这两行。
在:
var x = document.getElementById("pop<?php echo $i; ?>");
var y = document.getElementById("ta<?php echo $i; ?>");
后:
var x = document.getElementById("pop<?php echo $i; ?>").value;
var y = document.getElementById("ta<?php echo $i; ?>").value;
答案 2 :(得分:0)
无法创建动态功能。
将动态值传递给函数。
<强> PHP 强>
<?php
for ($i=0; $i < 5 ; $i++) {
?>
<input type="number" name="" id="pop<?php echo $i; ?>" >
<input onKeyup="su(<?php echo $i; ?>);" type="number" name="" id="ta<?php echo $i; ?>">
<input type="number" name="" id="display<?php echo $i; ?>">
<br />
<?php
}
?>
<强>的Javascript 强>
function su(id){
var x = document.getElementById("pop"+id);
var y = document.getElementById("ta"+id);
var sum;
if (y != ''){
sum = parseFloat(x + y);
document.getElementById("display"+id).value = parseFloat(x + y);
}
}