难解决的textarea中的回车和换行问题
最近做的项目中遇到了一个很棘手的问题,请来往的高手帮忙解决,感激不尽!
想把textarea中的文字(包含回车和换行)存入oracle中,但是存入的时候如果不处理回车换行存入到数据库就会出现数据丢失。另外,从数据库里读出来的时候,还要让回车换行正常显示。该字段是VARCHAR2类型,怎么解决呢?
本项目用的是jsp+servlet架构,所有数据的增、删、改、查都是在jsp页面用javascript进行的处理。如下:
1
<
script language
=
"
javascript
"
>
2 function sendReq() {
3 var desc = addForm.dept_user_desc.value.replace(/^( )+|^[\s ]+|( )+$|[\s ]+$/g, "" );
4 if (desc.length>50) {
5 alert("<%=pageMsgs.getString("descdn")%>");
6 addForm.dept_user_desc.focus();
7 return false;
8 }
9
10 var xmlData;
11 xmlData = '<?xml version="1.0" encoding="UTF-8"?>';
12 xmlData += '<data>';
13
14 xmlData += '<pri_keys>';
15 xmlData += '<pk>';
16 xmlData += '<pk_name>dept_user_id</pk_name>';
17 xmlData += '<pk_type>' + <%=("" + ParamInfo.T_INT)%> + '</pk_type>';
18 xmlData += '</pk>';
19 xmlData += '</pri_keys>';
20
21 xmlData += '<fields>';
22
23 xmlData += '<field>';
24 xmlData += '<field_name>dept_id</field_name>';
25 xmlData += '<field_type>' + <%=ParamInfo.T_INT%> + '</field_type>';
26 xmlData += '<field_value>' + <%=deptId%> + '</field_value>';
27 xmlData += '</field>';
28
29 xmlData += '<field>';
30 xmlData += '<field_name>user_id</field_name>';
31 xmlData += '<field_type>' + <%=ParamInfo.T_INT%> + '</field_type>';
32 xmlData += '<field_value>' + addForm.user_id.value + '</field_value>';
33 xmlData += '</field>';
34
35 xmlData += '<field>';
36 xmlData += '<field_name>regular_id</field_name>';
37 xmlData += '<field_type>' + <%=ParamInfo.T_INT%> + '</field_type>';
38 xmlData += '<field_value>' + addForm.regular_id.value + '</field_value>';
39 xmlData += '</field>';
40
41 xmlData += '<field>';
42 xmlData += '<field_name>dept_user_desc</field_name>';
43 xmlData += '<field_type>' + <%=ParamInfo.T_STRING%> + '</field_type>';
44 xmlData += '<field_value><![CDATA[' + addForm.dept_user_desc.value.replace(/^( )+|^[\s ]+|( )+$|[\s ]+$/g, "" ) + ']]></field_value>';
45 xmlData += '</field>';
46
47 xmlData += '</fields>';
48
49 xmlData += '<table_name>c_dept_user</table_name>'
50 xmlData += '<base_name>dept_user</base_name>';
51 xmlData += '</data>';
52
53 addForm.eventData.value = xmlData;
54 addForm.submit();
55
56}
57 </ script >
2 function sendReq() {
3 var desc = addForm.dept_user_desc.value.replace(/^( )+|^[\s ]+|( )+$|[\s ]+$/g, "" );
4 if (desc.length>50) {
5 alert("<%=pageMsgs.getString("descdn")%>");
6 addForm.dept_user_desc.focus();
7 return false;
8 }
9
10 var xmlData;
11 xmlData = '<?xml version="1.0" encoding="UTF-8"?>';
12 xmlData += '<data>';
13
14 xmlData += '<pri_keys>';
15 xmlData += '<pk>';
16 xmlData += '<pk_name>dept_user_id</pk_name>';
17 xmlData += '<pk_type>' + <%=("" + ParamInfo.T_INT)%> + '</pk_type>';
18 xmlData += '</pk>';
19 xmlData += '</pri_keys>';
20
21 xmlData += '<fields>';
22
23 xmlData += '<field>';
24 xmlData += '<field_name>dept_id</field_name>';
25 xmlData += '<field_type>' + <%=ParamInfo.T_INT%> + '</field_type>';
26 xmlData += '<field_value>' + <%=deptId%> + '</field_value>';
27 xmlData += '</field>';
28
29 xmlData += '<field>';
30 xmlData += '<field_name>user_id</field_name>';
31 xmlData += '<field_type>' + <%=ParamInfo.T_INT%> + '</field_type>';
32 xmlData += '<field_value>' + addForm.user_id.value + '</field_value>';
33 xmlData += '</field>';
34
35 xmlData += '<field>';
36 xmlData += '<field_name>regular_id</field_name>';
37 xmlData += '<field_type>' + <%=ParamInfo.T_INT%> + '</field_type>';
38 xmlData += '<field_value>' + addForm.regular_id.value + '</field_value>';
39 xmlData += '</field>';
40
41 xmlData += '<field>';
42 xmlData += '<field_name>dept_user_desc</field_name>';
43 xmlData += '<field_type>' + <%=ParamInfo.T_STRING%> + '</field_type>';
44 xmlData += '<field_value><![CDATA[' + addForm.dept_user_desc.value.replace(/^( )+|^[\s ]+|( )+$|[\s ]+$/g, "" ) + ']]></field_value>';
45 xmlData += '</field>';
46
47 xmlData += '</fields>';
48
49 xmlData += '<table_name>c_dept_user</table_name>'
50 xmlData += '<base_name>dept_user</base_name>';
51 xmlData += '</data>';
52
53 addForm.eventData.value = xmlData;
54 addForm.submit();
55
56}
57 </ script >
在Form里面写到desc,这里面用到了textarea。上面代码加入了对textarea输入文字的验证。
1
<
tr
>
2 < td align = " left " ><%= pageMsgs.getString( " dept_user_desc " ) %></ td >
3 < td align = " left " >
4 < textarea name = " dept_user_desc " class = " textfield " cols = " 50 " rows = " 5 " ><%= deptUserDesc %></ textarea >
5 </ td >
6 </ tr >
2 < td align = " left " ><%= pageMsgs.getString( " dept_user_desc " ) %></ td >
3 < td align = " left " >
4 < textarea name = " dept_user_desc " class = " textfield " cols = " 50 " rows = " 5 " ><%= deptUserDesc %></ textarea >
5 </ td >
6 </ tr >
当输入文字换行的时候,存入数据库的文字只有回车后的字符,回车换行之前的字符都已丢失。
有遇到此类问题的朋友,请留下宝贵意见,谢谢!