正在从模态表中调用该函数。并且表主体由ajax访问。在此表中,每行两行都带有两个文本框。每行和每个文本框的ID均不同。我将在下面显示我的代码。
ajax函数是
$(document).ready(function(){
/////////////// Invoice Link Click ////////////////
$("#invoice").click(function(){
var rowID=[];
///////// Initialize and assign row row value /////////////
rowID = arrays;
var tempArrays='';
for(i=0;i<arrays.length;i++){
if(arrays[i]!=''){
if(tempArrays!=''){
tempArrays=tempArrays+','+arrays[i];
}
else{
tempArrays=arrays[i];
}
}
}
alert("SUCCESS ALERT" +tempArrays);
alert(typeof tempArrays);
if(rowID!=''){
$.ajax({
url:'<?php echo base_url(); ?>index.php/Ajax_calls/invoicingFetch',
type: 'POST',
data:{tempArrays:tempArrays},
success: function(data){
$('#newtest').html(data);
alert("SUCCESSFULLY RETURNED............!!!!!!!!");
}
});
}
});
});
In AJAX控制器 功能:
public function invoicingFetch(){
if(isset($_POST['tempArrays'])){
$output='';
$postedVal=$this->input->post('tempArrays');
$myArray = explode(',',$postedVal);
$this->load->model('Ajax_model');
$arrayLen=sizeof($myArray);
for($i=0;$i<$arrayLen;$i++)
{
$arre=$myArray[$i];
$records = $this->Ajax_model->getRawdataGDSSingle($arre);
foreach($records as $row){
$saleid='sale'.$row->slno;
$marginid='margin'.$row->slno;
$output.='
<tr>
<td style="text-align:center !important;"><input type="checkbox" id="'.$row->slno.'" /> </td>
<td>'.$row->NAME.' </td>
<td>'.$row->TOTAL.' </td>
<td><input type="text" id="'.$saleid.'" name="saleamount" onKeyPress="UpdateMargin('.$saleid.','.$marginid.','.$row->TOTAL.')" onChange="UpdateMargin('.$saleid.','.$marginid.','.$row->TOTAL.')" value="'.$row->TOTAL.'" /> </td>
<td><input type="text" id="'.$marginid.'" name="marginamount" onchange="UpdateSale('.$marginid.','.$saleid.','.$row->TOTAL.')" value="0" /> </td>
<td>'.$row->BKD_BY.' </td>
<td> </td>
<td>'.$routing.' </td>
<td>'.$row->A2L.' </td>
<td>'.$row->TKT_NUMBER.' </td>
</tr>
';
}
}
echo $output; ///this output is the table body in modal
}
}
模态页面标题上的脚本
function UpdateMargin(saleid,marginid,total){
var sales=document.getElementById(saleid).value;
//var margin=document.getElementById(marginid).value;
var total=total;
var salMargin=sales-total;
document.getElementById(marginid).value=salMargin;
}
将错误显示为未捕获的TypeError:无法读取null的属性'val'
有人能告诉我原因吗?为什么会这样呢?在此先感谢所有的光辉。....
答案 0 :(得分:4)
.val()
是一个JQuery函数。
但是您正在获取没有JQuery的元素。
因此,如果var margin=document.getElementById(marginid).value;
有效,则必须将.val()
代码更改为var sales = $( '#' + saleid ).val();
如果获取.value不起作用,则该元素没有值(可能不是输入元素),并且您正在寻找innerText或innerHTML或某些数据属性。
如果以上所有条件都不成立,则saleid可能不是HTML中的有效ID。
答案 1 :(得分:0)
您要从元素获取的值在DOM中不存在。请检查是否存在带有saleid(无论您要传递的内容)的元素
答案 2 :(得分:0)
使用
var sales=saleid.value;
代替
var sales=document.getElementById(saleid).value;