我在html页面上使用php显示一个表。我想编辑单元格内容(基本上对值进行更改,并进行ajax调用以更新数据库)。对我的要求是使用onblur函数(我也可以使用onkeypress)。谁能告诉我用单元格id输入新值的最简单方法是什么?
x的警告告诉我它的“对象HTMLTableCellElement”
感谢!!!
foreach($_RESPONSE['VENDOR_LIST'] as $r){
echo "<tr><td>".$r['fdEmail']."</td><td id='companyname_".$r['fdId']."' contenteditable='true' onblur='updateValue(id)';>".$r['fdCompanyName']." ".$r['fdId']."</td></tr>";
}
Javascript方法
function updateValue(thisdata){
alert(""+thisdata);
var x=document.getElementById(""+thisdata);
if(x){
alert(x);
//var r = x.value;
}
else
alert("not found");
}
答案 0 :(得分:0)
表格单元格的“值”实际上并不是javascript的值,它只是HTML。尝试提醒x.innerText
。有关按ID获取单元格内容,请参阅this question。
另外,我知道每个人都讨厌听到这个,但jQuery会更容易。
答案 1 :(得分:0)
在您的HTML中,将 updateValue(id)更改为 updateValue(this.id);
然后将它放在updateValue函数中的第一个if语句中。
if(x.innerText){
alert(x.innerText);
} else {
// Firefox support
alert(x.textContent);
}
答案 2 :(得分:0)
在您的代码中
var x=document.getElementById(""+thisdata);
这里x是一个对象,你需要编写所需的函数来改变值或获取值。
alert(x.innerHTML);
将为您提供单元格的值。
我在HTML td标记中提到过,并且你的getElementById deos中的id不匹配。 (在浏览器中使用错误控制台来获取javascript错误)
您可能需要更改此功能
function updateValue(thisdata){
var x=document.getElementById("companyname_"+thisdata);
if(x){
alert(x.innerHTML);
}
else
alert("not found");
}
您的HTML代码:
foreach($_RESPONSE['VENDOR_LIST'] as $r){
echo "<tr><td>".$r['fdEmail']."</td>
<td id='companyname_".$r['fdId']."' contenteditable='true' onblur="updateValue('companyname_".$r['fdId']."');">".$r['fdCompanyName']." ".$r['fdId']."</td></tr>";
}
注意:我没有测试过代码,请相应地进行更改,如果您觉得困难,请在此处发布:)
始终使用jQuery,它使您的任务变得简单:)