更改脚本以在div中输入文本,而不是textarea

时间:2012-04-13 06:20:22

标签: javascript html-table textarea

我正在与开发人员合作,他正在处理超出我能力的编码;主要是PHP和更复杂的Javascript(我只是好的在jQuery上)。

开发人员一直在做的部分工作涉及检查数据库并将结果动态输入页面。问题是目前这些结果输入<textarea>,这不是理想的,因为这意味着如果只读它,如果用户改变主意,结果将无法删除。如果它不是只读的,用户可以在textarea中输入他们喜欢的任何文本,使页面无法使用。另外,我无法将任何CSS应用于textarea中的结果。

此外,开发人员正在使用桌子,这是我的宠物之一。

我希望<textarea>代替<div>,其中包含<div>找到的每个数据库结果。

开发人员目前离开了几个星期,我希望尽快完成这项工作。我已经尝试将“td”简单地改为“div”,但显然这不起作用。

我真的很感激一些帮助。我已经包含了下面的代码。不幸的是,我无法访问实时/测试站点(超出我的控制范围)并为此道歉。

if(answer)
{

var newRow = document.getElementById("target_table");
var Row = newRow.rows.length;   
var row1 = newRow.insertRow(Row);
var index=row1.rowIndex;
var td1= document.createElement("TD")
var td2= document.createElement("TD")
td2.innerHTML =  "

<INPUT TYPE='hidden' NAME='course"+Row+"' id='course"+Row+"' value='"+answer+"'>
<INPUT TYPE='hidden' NAME='ary"+Row+"' id='ary"+Row+"'>
<INPUT TYPE='hidden' NAME='Dary"+Row+"' id='Dary"+Row+"'>
<p class='courseName'>"+answer+"</p>
<div id='boxRw"+Row+"' class='boxyHolder'>

    <TABLE border=1 cellspacing=2>
        <TR>
            <TD>
                <INPUT TYPE='button' name='Add a favourite to this course' value='Add a favourite to this course' onclick='javascript: window.open(\"<?=$path?>add-my-favourites/"+Row+"\",\"mywindow\",\"left=550,top=200,width=400,height=350,toolbar=1,resizable=0\");'>
            </TD>
        </TR>
        <tr>
            <td colspan=2>
                <TABLE border=1>
                    <TR>
                        <TD valign=top>Favourites:</TD>
                        <TD>
                            <TEXTAREA class='fav-box' NAME='reps"+Row+"' id='reps"+Row+"' ROWS=4 COLS=45></TEXTAREA>
                            <input class='fav-box' TYPE='hidden' NAME='repsId"+Row+"' id='repsId"+Row+"' value=''>
                        </TD>
                    </TR>
                </TABLE>
            </td>
        </tr>

    </TABLE>

</div>"; 

row1.appendChild(td1);
row1.appendChild(td2);

document.getElementById("h").value=Row;
}

function setVal(){
    var r = "<?=$_GET['hVal']?>";
    var y = "reps"+r;

    var y1 = "repsId"+r;

    window.opener.document.getElementById(y).value+=document.frm.favourites.value+',';
    window.opener.document.getElementById(y1).value+=document.frm.recp_listId.value+',';
    window.close();
}

编辑:我相信这些是我需要改变的路线:

window.opener.document.getElementById(y).value+=document.frm.recipes.value+',';             

window.opener.document.getElementById(y1).value+=document.frm.recp_listId.value+',';

我认为问题是这些行正在将值添加到当前的<textarea>。当我将textareas更改为div时,值不会应用于div。所以我需要更改代码,以便它将结果作为div中的文本输入 - 而不是值。

1 个答案:

答案 0 :(得分:1)

如果您使用div,请使用其textContent媒体资源,而不是value,例如textarea和{{1}等表单控件}。您没有收到任何错误,因为您最终在input上创建了value属性。


代码段#1

div