Javascript 为什么这个功能不起作用?显示空值的val错误
正在从模式表调用该函数。并且表体是通过ajax访问的。在这个表中,每行有两个文本框。每行和每个文本框的ID都不同。我将在下面显示我的代码 ajax函数是Javascript 为什么这个功能不起作用?显示空值的val错误,javascript,php,jquery,ajax,codeigniter,Javascript,Php,Jquery,Ajax,Codeigniter,正在从模式表调用该函数。并且表体是通过ajax访问的。在这个表中,每行有两个文本框。每行和每个文本框的ID都不同。我将在下面显示我的代码 ajax函数是 $(document).ready(function(){ /////////////// Invoice Link Click //////////////// $("#invoice").click(function(){ var rowID=[]; ///////// Initializ
$(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............!!!!!!!!");
}
});
}
});
});
控制台中显示的错误是
将错误显示为未捕获类型错误:无法读取null的属性“val”
有人能告诉我原因吗?为什么会这样?感谢所有brilliants…..您试图从元素中获取的值在DOM中不存在。请检查saleid元素(无论您传递什么)是否存在您试图从元素中获取的值在DOM中不存在。请检查saleid(无论您传递什么)的元素是否存在。
.val()
是一个JQuery函数
但是您正在获取没有JQuery的元素
因此,如果var margin=document.getElementById(marginid).value代码>工作时,必须将.val()
代码更改为var sales=$('#'+saleid).val()代码>
如果getting.value不起作用,则可能是元素没有值(可能不是输入元素),您正在查找innerText或innerHTML或某些数据属性
如果上述任何一项都不正确,saleid可能不是HTML中的有效id。.val()
是一个JQuery函数
但是您正在获取没有JQuery的元素
因此,如果var margin=document.getElementById(marginid).value代码>工作时,必须将.val()
代码更改为var sales=$('#'+saleid).val()代码>
如果getting.value不起作用,则可能是元素没有值(可能不是输入元素),您正在查找innerText或innerHTML或某些数据属性
如果以上都不正确,saleid可能不是HTML中的有效id。使用
var sales=saleid.value;
而不是
var sales=document.getElementById(saleid).value;
使用
而不是
var sales=document.getElementById(saleid).value;
任何人都可以检查这个?可能您所需的ID元素没有值。$row->TOTAL
是否总是一个值?错误发生在哪个事件上?根据控制台,UpdateMargin函数有错误。但是在快照中没有UpdateMargin函数数组的价值是什么?如果你认为是这样的话,你也可以分享你的html吗relevent@Andronkeypress和onchange上的éKelling都显示错误。但在源代码工具中,它显示传递的值。它显示为UpdateMargin(sale1765,margin17651110)。任何人都可以检查它?可能您所需的ID元素没有值。$row->TOTAL
是否总是一个值?错误发生在哪个事件上?根据控制台,UpdateMargin函数有错误。但是在快照中没有UpdateMargin函数数组的价值是什么?如果你认为是这样的话,你也可以分享你的html吗relevent@Andronkeypress和onchange上的éKelling都显示错误。但在源代码工具中,它显示传递的值。它显示为UpdateMargin(sale1765,margin17651110)它显示的错误如下所示当进行更改时您说的未捕获错误:语法错误,无法识别的表达式:#[object HTMLInputElement]现在我刚刚用saleid在函数中添加了一个警报。它向ajax控制器函数[object HTMLInputElement]发出警报,该值正在传递。您可以检查它吗?这意味着saleid已经是一个元素,而不是表示该元素id的字符串。JQuery方式的解决方案应该是:var sales=$(saleid).val()
没有散列,因此该元素将被包装为JQuery元素。这相当于var sales=saleid.value代码>。我建议在updateMargin函数中将名称从saleid和marginid更改为saleelement和marginelement,这样它们的名称才是正确的,而不是令人困惑的。在进行更改时,它会显示如下错误:未捕获错误:语法错误,无法识别的表达式:#[object HTMLInputElement]现在,我刚刚在函数中添加了一个带有saleid的警报。它向ajax控制器函数[object HTMLInputElement]发出警报,该值正在传递。您可以检查它吗?这意味着saleid已经是一个元素,而不是表示该元素id的字符串。JQuery方式的解决方案应该是:var sales=$(saleid).val()
没有散列,因此该元素将被包装为JQuery元素。这相当于var sales=saleid.value代码>。我建议在updateMargin函数中将名称从saleid和marginid更改为saleelement和marginelement,这样它们的名称就正确了,而不是混淆。我已经检查过了。它的值为[object HTMLInputElement]。如何更改此项?请使用警报检查saleid[0]或saleid.value。saleid.value
将提供我检查过的值。它的值为[object HTMLInputElement]。如何更改此值?请使用警报检查saleid[0]或saleid.value。saleid.value
将为您提供值
var sales=document.getElementById(saleid).value;