document.getElementById返回未定义的值

时间:2018-08-27 08:53:46

标签: php codeigniter

我想获得增量和减量输入类型值。该值在javascript中显示未定义。怎么办。

echo '<td id="textone_'.$row['id'].'">'.$row['fee']. '</td>'; 
 echo '<td id="texttwo_'.$row['id'].'"> 
 <input type="number" min="0" max="999" name="india"  
 onChange="sum('.$row['id'].');" class="txtbox" disabled="disabled" ></td>';
  echo '<td> <input type="text" value="0"
 id="result_'.$row['id'].'" name="result"></td>';
  Ajax
  ************
<script type="text/javascript">
 function sum(rowid) {

   var txtFirstNumberValue =  
    document.getElementById('textone_'+rowid).innerHTML;
   alert(txtFirstNumberValue );  
   var txtSecondNumberValue = 
     document.getElementById('texttwo_'+rowid).value;
   alert(currentVal);        
   var result = parseInt(txtFirstNumberValue) * 
    parseInt(txtSecondNumberValue);
   alert(result);
   if (!isNaN(result)) {
       document.getElementById('result_'+rowid).value = result;
    }
  }
</script>

如何解决此问题?

2 个答案:

答案 0 :(得分:1)

代码中有很多错误。

尝试以下方法:

<?php
echo '<td id="texttwo_' . $row['id'] . '"> 
  <input type="number" min="0" max="999" name="sets" class="txtbox" onchange="getValue(this);" ></td>';
?>
<script>
    function getValue(obj) {
        alert(obj.value);
    }
</script>

以下是您的代码无法正常工作的原因:

  1. 您禁用了输入框,这意味着增加/减少 箭头首先不会起作用。
  2. 您的onchange()函数没有意义。您要总结什么?
  3. 您定义了txtSecondNumberValue,但您叫了currentVal

检查here以获得更多的JavaScript见解。

答案 1 :(得分:0)

您的JavaScript值txtSecondNumberValue试图检索td标签的值,而不是输入字段。另外,您还会警告未在任何地方定义的JavaScript变量。您尝试连接以获取元素值的 rowid 也是错误的。它不是JavaScript变量,也不是任何包含任何其他内容的变量。如果有的话,它将作为字符串连接,您将尝试检索以下值:texttwo_rowid,该值不存在。

尝试以下操作:

<?php
echo '
<td id="td_'.$row['id'].'"> 
  <input type="number" min="0" max="999" name="sets[]" onChange="sum('.$row['id'].');" id="texttwo_'.$row['id'].'" class="txtbox" disabled="disabled" />
</td>';
?>
<script>
var txtSecondNumberValue = document.getElementById('texttwo_'+<?php echo $row['id']; ?>).value;
alert(txtSecondNumberValue);
</script>