0

我正在与一位开发人员一起工作,该开发人员正在处理超出我能力范围的编码;主要是 PHP 和更复杂的 Javascript(我只擅长jQuery)。

开发人员一直在做的部分工作涉及检查数据库并将结果动态地输入页面。问题是当前这些结果被输入到 a<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 中,而不是值。

4

1 回答 1

1

如果您使用 a div,请使用它的textContent属性,而不是value像您用于表单控件(如textareaand )那样input。您没有收到任何错误,因为您最终valuediv.


代码片段#1

var div = document.createElement('div');
div.textContent = document.frm.recipes.valu‌​e;
window.opener.document.getElementById(y).appendChild(div);
于 2012-04-13T06:45:03.893 回答