下面贴代码<td noWrap width="20%">
<div>
<textarea id="msgContentArea" rows="15" cols="40"
onPropertyChange="javascript:setMsg();"></textarea>
<span><font color="red">*</font></span>
</div>
</td><th><app:i18n key="page.9.wordcount"/>:</th>
<td colspan="2">
<font color="red"><app:SmsContextTag form="PolicyFormBean" formfield="msgPreview" /> </font>
</td>
js代碼將textare中的值獲取到,在後臺判斷,在傳回前臺 function setMsg(){
//获取短信内容和签名状态
var previewMsg = "";
var msgContentArea=$("#msgContentArea");
previewMsg += msgContentArea.val();
var nameFlagObjs = document.getElementsByName("nameFlag");
var nameFlag = false;
var userName = "";
if(nameFlagObjs[1].checked){
nameFlag = true;
userName = document.getElementsByName("currentName")[0].value;
}
if(nameFlag)
previewMsg += "[" + userName + "]";
if(msgContentArea.val()=="")
previewMsg = "";
PolicyFormBean.msgPreview.value = previewMsg;
}
後臺程序 System.out.println(longsmsenglishlength);
System.out.println(longsmschineselength);
StringBuffer sb = new StringBuffer(); sb.append("<script language=\"javascript\">\n");
sb.append("var submitflag = false;\n");
sb.append("function checkSmsContext(send_content){\n");
//sb.append("alert(send_content);");
sb.append("var strlength=0;\n");
sb.append("var iList=0;\n");
sb.append("var maxlengths=134;\n");
sb.append("var firstmax=140;\n");
sb.append("send_content = send_content.replaceAll('\\r','');\n");
//sb.append("alert(send_content);");
sb.append("if( isChinese( send_content ) ){\n");
sb.append("firstmax=140;\n");
sb.append("strlength = send_content.length * 2;\n");
sb.append("}else{\n");
sb.append("firstmax=140;\n");
sb.append("strlength = send_content.length;\n");
sb.append("} \n");
sb.append("if( strlength<=firstmax ){\n");
sb.append("iList=1;");
sb.append("}else{\n");
sb.append("if( strlength%maxlengths==0 ){\n");
sb.append("iList = parseInt( strlength/maxlengths );\n");
sb.append("}else{\n");
sb.append("iList = parseInt( strlength/maxlengths ) + 1;\n");
sb.append("}\n");
sb.append("}\n");
sb.append("if(strlength >800){\n");
sb.append("submitflag=false;}\n");
sb.append("else{\n");
sb.append("submitflag=true;\n");
sb.append("}\n");
sb.append("document.getElementsByName(\"sms_contextlimit\")[0].innerHTML=\" " + ResourceLoad.getValueByKey("public.messagemaxlength") + " \"+"
+ longsmsenglishlength + "+ \" " + ResourceLoad.getValueByKey("public.byte") + ".\"+\n\""
+ ResourceLoad.getValueByKey("public.hadinput") + "\"+strlength+\" " + ResourceLoad.getValueByKey("public.byte")
+ "," + ResourceLoad.getValueByKey("public.devided") + " \"+iList+\" " + ResourceLoad.getValueByKey("public.item") + " "
+ ResourceLoad.getValueByKey("public.send") + ".<br>" + ResourceLoad.getValueByKey("public.onlyreference") + "\"; }\n");
sb.append("\n");
sb.append("String.prototype.replaceAll = function(s1,s2) { \n");
sb.append("return this.replace(new RegExp(s1,\"gm\"),s2); \n");
sb.append("}\n");
sb.append("setInterval(function(){checkSmsContext(" + form + "." + formfield
+ ".value) },1000);\n ");
sb.append("function isChinese(str){\n");
sb.append("iLength = str.length;\n");
sb.append("for(i=0;i<iLength;i++){\n");
sb.append("var tmp_code = str.substring(i,i+1).charCodeAt(); \n");
sb.append("if( tmp_code> 0xff ){\n");
sb.append("return true;\n");
sb.append("}\n");
sb.append("}\n");
sb.append("return false;\n");
sb.append("}\n");
sb.append("</script>\n");
sb.append("\n");
sb.append("<div id=\"sms_contextlimit\" name=\"sms_contextlimit\" class=\"STYLE3\"/>\n");
return sb.toString();在ie下是可以識別這個的 sb.append("setInterval(function(){checkSmsContext(" + form + "." + formfield
+ ".value) },1000);\n ");也就是
PolicyFormBean.msgPreview.value可safari,chrome,ff都不行 報id位於全局範圍,這個是什麽情況很急,謝謝大家
<div>
<textarea id="msgContentArea" rows="15" cols="40"
onPropertyChange="javascript:setMsg();"></textarea>
<span><font color="red">*</font></span>
</div>
</td><th><app:i18n key="page.9.wordcount"/>:</th>
<td colspan="2">
<font color="red"><app:SmsContextTag form="PolicyFormBean" formfield="msgPreview" /> </font>
</td>
js代碼將textare中的值獲取到,在後臺判斷,在傳回前臺 function setMsg(){
//获取短信内容和签名状态
var previewMsg = "";
var msgContentArea=$("#msgContentArea");
previewMsg += msgContentArea.val();
var nameFlagObjs = document.getElementsByName("nameFlag");
var nameFlag = false;
var userName = "";
if(nameFlagObjs[1].checked){
nameFlag = true;
userName = document.getElementsByName("currentName")[0].value;
}
if(nameFlag)
previewMsg += "[" + userName + "]";
if(msgContentArea.val()=="")
previewMsg = "";
PolicyFormBean.msgPreview.value = previewMsg;
}
後臺程序 System.out.println(longsmsenglishlength);
System.out.println(longsmschineselength);
StringBuffer sb = new StringBuffer(); sb.append("<script language=\"javascript\">\n");
sb.append("var submitflag = false;\n");
sb.append("function checkSmsContext(send_content){\n");
//sb.append("alert(send_content);");
sb.append("var strlength=0;\n");
sb.append("var iList=0;\n");
sb.append("var maxlengths=134;\n");
sb.append("var firstmax=140;\n");
sb.append("send_content = send_content.replaceAll('\\r','');\n");
//sb.append("alert(send_content);");
sb.append("if( isChinese( send_content ) ){\n");
sb.append("firstmax=140;\n");
sb.append("strlength = send_content.length * 2;\n");
sb.append("}else{\n");
sb.append("firstmax=140;\n");
sb.append("strlength = send_content.length;\n");
sb.append("} \n");
sb.append("if( strlength<=firstmax ){\n");
sb.append("iList=1;");
sb.append("}else{\n");
sb.append("if( strlength%maxlengths==0 ){\n");
sb.append("iList = parseInt( strlength/maxlengths );\n");
sb.append("}else{\n");
sb.append("iList = parseInt( strlength/maxlengths ) + 1;\n");
sb.append("}\n");
sb.append("}\n");
sb.append("if(strlength >800){\n");
sb.append("submitflag=false;}\n");
sb.append("else{\n");
sb.append("submitflag=true;\n");
sb.append("}\n");
sb.append("document.getElementsByName(\"sms_contextlimit\")[0].innerHTML=\" " + ResourceLoad.getValueByKey("public.messagemaxlength") + " \"+"
+ longsmsenglishlength + "+ \" " + ResourceLoad.getValueByKey("public.byte") + ".\"+\n\""
+ ResourceLoad.getValueByKey("public.hadinput") + "\"+strlength+\" " + ResourceLoad.getValueByKey("public.byte")
+ "," + ResourceLoad.getValueByKey("public.devided") + " \"+iList+\" " + ResourceLoad.getValueByKey("public.item") + " "
+ ResourceLoad.getValueByKey("public.send") + ".<br>" + ResourceLoad.getValueByKey("public.onlyreference") + "\"; }\n");
sb.append("\n");
sb.append("String.prototype.replaceAll = function(s1,s2) { \n");
sb.append("return this.replace(new RegExp(s1,\"gm\"),s2); \n");
sb.append("}\n");
sb.append("setInterval(function(){checkSmsContext(" + form + "." + formfield
+ ".value) },1000);\n ");
sb.append("function isChinese(str){\n");
sb.append("iLength = str.length;\n");
sb.append("for(i=0;i<iLength;i++){\n");
sb.append("var tmp_code = str.substring(i,i+1).charCodeAt(); \n");
sb.append("if( tmp_code> 0xff ){\n");
sb.append("return true;\n");
sb.append("}\n");
sb.append("}\n");
sb.append("return false;\n");
sb.append("}\n");
sb.append("</script>\n");
sb.append("\n");
sb.append("<div id=\"sms_contextlimit\" name=\"sms_contextlimit\" class=\"STYLE3\"/>\n");
return sb.toString();在ie下是可以識別這個的 sb.append("setInterval(function(){checkSmsContext(" + form + "." + formfield
+ ".value) },1000);\n ");也就是
PolicyFormBean.msgPreview.value可safari,chrome,ff都不行 報id位於全局範圍,這個是什麽情況很急,謝謝大家
解决方案 »
- 求下面js弹窗的原理,js高手帮个忙。
- document.documentElement.clientHeight的一个问题
- 已知一个圆的直径(200)和圆心坐标(100,100),要把这个圆平均分成8份,如何求得 8个分割点的坐标?
- FCKEditor编辑时候<p>后面自动加<br>,每修改一次多一个<br>,怎么解决?
- 更改表单action的问题
- javascript连接oracle数据库
- 一段可以使图片等比例缩放的代码
- js 复选框判断是否选中后,其他字段判断是否填写失败求解!
- 求教jquery代码优化思路
- 请各位高手指教
- ext combobox 加载完后台数据后 再赋值怎么弄
- 页面报javax.servlet.ServletException: Request[/policyrevert] does not contain handl
sb.append("function checkSmsContext(o){\n");
sb.append("var send_content=document.getElementById(\"o\").value");
//sb.append("alert(send_content);");
sb.append("var strlength=0;\n");
sb.append("setInterval(function(){checkSmsContext(" + formfield+ ") },1000);\n ");
sb.append("var send_content=document.getElementById(o).value");
//sb.append("alert(send_content);");
sb.append("var strlength=0;\n");sb.append("setInterval(function(){checkSmsContext('" + formfield+ "') },1000);\n ");
试过了,不行
而且您的这句话是什么意思?
sb.append("setInterval(function(){checkSmsContext('" + formfield+ "') },1000);\n ");formfield是通过页面传过来的值,在formbean中有相对应的值
当前formfield也就是msgPreview
PolicyFormBean.msgPreview.value
1:计时器中传参为formfield
2:checkSmsContext变更参数为:formfield,
将你原有的参数:send_content变更为:var send_content=document.getElementById(formfield).value去获取值你把整个服务器解析后生成的完整HTML贴出来就知道了,我在你贴的代码里没有看到msgPreview在哪里