textarea 的value属性

wfylg 2008-12-18 12:00:27
怎么将<textarea>属性的value值(超文本格式)传递到页面显示时自动按超文本源码转换成页面显示效果。
如<textarea name="content"></textarea>
content.value="<table><tr><td>adsfa<td></tr>"
我想实现的是content方本框中显示是一个表格有一行,值是adsfa.
我试过如果不用方本框,用DIV可以显示出效果,但不能进行编辑。
请高手帮我看一下,谢谢。希望我表达的能明白。
...全文
9403 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
bf234511171 2010-09-07
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 superwfei 的回复:]
HTML code
ok,在线编辑器的前身
<input type="hidden" name="xxx" id="xxx" title="定义一个隐藏域,用以表单数据提交" />
<div id="editor" style="border:1px solid #CCCCCC;" title="定义一个 div,用以编辑 html 代码">
here is your code
</di……
[/Quote]
?????
bf234511171 2010-09-07
  • 打赏
  • 举报
回复
asdasd
bf234511171 2010-09-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wfylg 的回复:]
<div contentEditable="true"> </div>

之后用innerHTML取值,,,怎么能传值到另一页面保存呢???
[/Quote]

???
文盲老顾 2008-12-19
  • 打赏
  • 举报
回复
ok,在线编辑器的前身
<input type="hidden" name="xxx" id="xxx" title="定义一个隐藏域,用以表单数据提交" />
<div id="editor" style="border:1px solid #CCCCCC;" title="定义一个 div,用以编辑 html 代码">
here is your code
</div>

<script>
var edt = document.getElementById('editor'); // 引用用以编辑 html 的 div
var edtor = document.getElementById('xxx'); // 引用隐藏域

edt.onclick = function(){ // 定义编辑域的点击事件
if ((this.childNodes[0].nodeName!='TEXTAREA')||(this.childNodes.length>1)){ // 如果编辑域的子节点多于一个或者第一个子节点不是文本域时
var e = document.createElement('textarea'); // 创建一个文本域
e.style.width = this.offsetWidth; // 文本域宽度定义
e.value = edtor.value = this.innerHTML; // 保存现有的 html 内容到文本域和隐藏域中
this.innerHTML = ''; // 清空编辑域的节点
this.appendChild(e); // 将文本域追加到编辑域中
e.focus(); // 使文本域获得焦点
e.onblur = function(){ // 定义文本域失去焦点时的事件
this.parentNode.innerHTML = edtor.value = this.value; // 编辑域恢复到文本域的最后值,并将值传递给隐藏域
}
}
}

</script>


so 测试通过
文盲老顾 2008-12-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 mylove_web 的回复:]
e.onblur = function(){
this.parentNode.innerHTML = edtor.value = this.value;
}
请讲解一下此句的执行条件,
因为我的感觉是代码运行到 e.focus();后,就停下来了?

[/Quote]

yes,首先定义了一个 div,而我们需要的效果是当点击 div 时换成文本输入域,输入完成自动再转回到 html 代码

那么定义 div 的 onclick 事件,在触发后,将已存在的 html 代码保存到隐藏域及生成的文本域中,同时为了保证文本域完成后自动代回 html 代码,我们定义了两个事件,

第一个事件是,当 div 被点击时,生成并将文本域加载到页面的时候触发,即:文本域获得焦点

另一个事件就简单了,我们对这个文本域单独定义了一个事件,即:失去焦点时触发

so 以上代码
liuhaibing0903 2008-12-19
  • 打赏
  • 举报
回复
MARK,学习
程序混混 2008-12-18
  • 打赏
  • 举报
回复
hookee 2008-12-18
  • 打赏
  • 举报
回复

<div contentEditable="true"></div>

之后用innerHTML取值
mylove_web 2008-12-18
  • 打赏
  • 举报
回复

<textarea id=kk></textarea>

<table border=1 id=gg> <tr> <td>adsfa </td> </tr></table>

<script>
kk.appendChild(gg)
</script>
wfylg 2008-12-18
  • 打赏
  • 举报
回复
<div contentEditable="true"></div>

之后用innerHTML取值,,,怎么能传值到另一页面保存呢???
mylove_web 2008-12-18
  • 打赏
  • 举报
回复
e.onblur = function(){
this.parentNode.innerHTML = edtor.value = this.value;
}
请讲解一下此句的执行条件,
因为我的感觉是代码运行到 e.focus();后,就停下来了?
wfylg 2008-12-18
  • 打赏
  • 举报
回复
我把我的代码简单摘抄一些吧,主要是我要动态的选某个类别,可以自动取出他的说明,说明是一个超文本。相当是一个模板,用户可以自己在上面修改,添加内容。
现在的问题是我取出来了,但还是超方本的不能看到模板的页面效果。不知道我有没有讲明白。
<form name="frmxx" method="post">
<tr>
<td>
<select size="1" name="sqlb" onchange='changeselect()'>
<option value="100">请选择申请类别</option>
<%
sql="select * from OA_zjh_zylb where bz=1 order by lbxh asc"
rs.open sql,conn,1,1
do while not rs.eof
%>
<option value="<%=rs("lbxh")%>" <%if slbxh=rs("lbxh") then%> selected <%end if%> title=<%=rs("lbxh")%>><%=rs("lbmc")%></option>

<%
rs.movenext
loop
rs.close%>
</select>
</td>
<tr >
<td width="62" nowrap>申请说明</td>
<td nowrap colspan=3>
<textarea name="Content1" id="Content1" style="width: 560px; height: 200px"><%=syssm%></textarea>
</td>
</tr>
</form>

<script language=vbscript>
sub changeselect()
for i=0 to frmxx.sqlb.length
if frmxx.sqlb.selectedIndex=i Then
lbsm=showModalDialog("getzyrlbsm.asp?lbxh="& frmxx.sqlb.options(i).title,"dialogWidth:0px;dialogHeight:0px;status:no")
frmxx.content1.value=lbsm
end if
next
end sub
</script>
wfylg 2008-12-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 superwfei 的回复:]
response.write " <textarea>第一行" & vbcrlf & "第二行" & vbcrlf & "更多行。。。。 </textarea>"
[/Quote]
<textarea>里的value是不确定的超文本,你不知道有多少行。怎么定义行数。
文盲老顾 2008-12-18
  • 打赏
  • 举报
回复
response.write "<textarea>第一行" & vbcrlf & "第二行" & vbcrlf & "更多行。。。。</textarea>"
wfylg 2008-12-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hookee 的回复:]
HTML code
<div contentEditable="true"></div>



之后用innerHTML取值
[/Quote]

可以说具体些吗?还有DIV放在form中可以提交到另一页面吗
wfylg 2008-12-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mylove_web 的回复:]

<textarea id=kk> </textarea>

<table border=1 id=gg> <tr> <td>adsfa </td> </tr> </table>

<script>
kk.appendChild(gg)
</script>
[/Quote]

你的方法可能可以,但对我现在的来说不太适合,因为textarea.value是从另一个地方取来的超文本字符集,可能有TABLE,也可能没有,更不会有ID/
文盲老顾 2008-12-18
  • 打赏
  • 举报
回复
ok,在线编辑器的前身
<input type="hidden" name="xxx" id="xxx" />
<div id="editor" style="border:1px solid #CCCCCC;">
here is your code
</div>

<script>
var edt = document.getElementById('editor');
var edtor = document.getElementById('xxx');

edt.onclick = function(){
if ((this.childNodes[0].nodeName!='TEXTAREA')||(this.childNodes.length>1)){
var e = document.createElement('textarea');
e.style.width = this.offsetWidth;
e.value = edtor.value = this.innerHTML;
this.innerHTML = '';
this.appendChild(e);
e.focus();
e.onblur = function(){
this.parentNode.innerHTML = edtor.value = this.value;
}
}
}

</script>

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧