之前的javascript插入测试</表>;在文本区

之前的javascript插入测试</表>;在文本区,javascript,forms,textarea,Javascript,Forms,Textarea,我有一个文本区,用于在表中输入演员和角色,使用javascript,但必须有按钮来添加',还有一个单独的按钮用于结束,是否有方法修改以下代码,在结束之前将新演员添加为角色表行,因此不需要额外的按钮 function addtxt(input) { var obj=document.getElementById(input); var actortxt = document.getElementById('actor').value; var chartxt = document.getEleme

我有一个文本区,用于在表中输入演员和角色,使用javascript,但必须有按钮来添加
'
,还有一个单独的按钮用于结束
,是否有方法修改以下代码,在结束
之前将新演员添加为角色表行,因此不需要额外的按钮

function addtxt(input) {
var obj=document.getElementById(input);
var actortxt = document.getElementById('actor').value;
var chartxt = document.getElementById('character').value;
obj.value+="<tr><td>"+actortxt+"</td><td>as</td><td>"+chartxt+"</td></tr>";
}
函数addtxt(输入){
var obj=document.getElementById(输入);
var actorText=document.getElementById('actor').value;
var chartxt=document.getElementById('character')。值;
对象值+=“”+ActorText+”为“+ChartText+”;
}

var i=0;
函数addtxt(){
i++;
var actorText=document.getElementById('actor').value;
var chartxt=document.getElementById('character')。值;
如果(i%3==1){
var open1='';
var close1='';
i=0;
}否则{
var open1='';
var close1='';
}
document.getElementById('souther').innerHTML+=open1+“”+ActorText+“as”+ChartText+“”+close1;
}
document.addEventListener('click',addtxt,false);
创建一个临时的
,并将textarea html字符串放入其中

然后操纵temp
中的table元素,就像它在页面中一样

完成后,从临时文件的innerHTML设置textarea值

var editor=document.getElementById('editor'))
var tempDiv=document.createElement('div');
tempDiv.innerHTML=editor.value;
var table=tempDiv.querySelector('table'),
newRow=表格.insertRow(),
cell1=newRow.insertCell(),
cell2=newRow.insertCell();
cell1.textContent='第2行单元格1';
cell2.textContent='第2行单元格2';
editor.value=tempDiv.innerHTML

其他因素

第1行单元格1第1行单元格2
没关系,稍加修改,我就找到了这个解决方案:

    function inserttext(tarea){
        var obj=document.getElementById(tarea);
        var maintext =  document.getElementById(tarea).value;
        var actortxt = document.getElementById('actor').value;
        var chartxt = document.getElementById('character').value;
        var chstr = '<tr><td>'+actortxt+'</td><td>as</td><td>'+chartxt+'</td></tr>';
//      alert('Main:'+maintext+'--'+'Actor:'+actortxt+'--'+'Char:'+chartxt+'--'+chstr);
        var position = maintext.indexOf('</table>');
//      alert('table close found at :'+position);
        var newtext= maintext.substr(0, position) + chstr + maintext.substr(position);
//      alert('New Text:'+newtext);
        obj.value=newtext;
    }
函数插入文本(tarea){
var obj=document.getElementById(tarea);
var maintext=document.getElementById(tarea).value;
var actorText=document.getElementById('actor').value;
var chartxt=document.getElementById('character')。值;
var chstr=''+actorText+'as'+chartxt+'';
//警报('Main:'+maintext+'-'+'Actor:'+actorText+'-'+'Char:'+chartText+'-'+chstr);
变量位置=maintext.indexOf(“”);
//警报(在“+”位置发现表关闭);
var newtext=maintext.substr(0,位置)+chstr+maintext.substr(位置);
//警报(“新文本:”+newtext);
对象值=新文本;
}

此代码项目示例可能会有所帮助:谢谢,但我在页面上没有表格,源代码
位于文本区域,用于将表格保存到数据库中,这是可行的,但我需要在
之前将
添加到文本区域。我将在早上查看,目前所有这些似乎对我都不起作用,请在这里查看我的表单,看看我在寻找什么,在底部输入演员和角色,然后单击“添加表格开始”,然后单击“添加演员组成员”,然后单击“添加表格结束”,我正在尝试实现这一点,而无需添加
按钮。我认为定位
并在其前面插入
行同样容易,但在JS中如何做到这一点?当您可以在DOM中而不是在文本区域中进行操作时,整个概念似乎是一种非常奇怪的方法。DOM是一个非常强大的html解析器
    function inserttext(tarea){
        var obj=document.getElementById(tarea);
        var maintext =  document.getElementById(tarea).value;
        var actortxt = document.getElementById('actor').value;
        var chartxt = document.getElementById('character').value;
        var chstr = '<tr><td>'+actortxt+'</td><td>as</td><td>'+chartxt+'</td></tr>';
//      alert('Main:'+maintext+'--'+'Actor:'+actortxt+'--'+'Char:'+chartxt+'--'+chstr);
        var position = maintext.indexOf('</table>');
//      alert('table close found at :'+position);
        var newtext= maintext.substr(0, position) + chstr + maintext.substr(position);
//      alert('New Text:'+newtext);
        obj.value=newtext;
    }