[英]Safari 5.1.7 Duplicates text in text area in JSP
在我的项目中,我在JSP上具有从Web页面检索拒绝备注的功能。
<%
String rejectRemarks = null;
String rejectType = null;
String isScrap = "N";
if(request.getParameter("rejectRemarks") != null && request.getParameter("rejectRemarks")!="undefined" )
{
rejectRemarks = request.getParameter("rejectRemarks");
rejectType = request.getParameter("rejectType");
//System.out.println("in remarks.jsp reject remarks before substring ::" + rejectRemarks);
if(rejectType != null && rejectType.equals("S"))
isScrap="Y";
}
else
rejectRemarks = "";
%>
<html>
<head>
<script type="text/javascript">
var remarksValue = "";
function showDetails()
{
var maxlength=255;
var e = window.event;
remarksValue = document.getElementById("remarks").value;
if(remarksValue == undefined || remarksValue == null ||MyTrim(remarksValue).length==0)
{
remarksValue = "";
document.getElementById("validity").value="Enter valid remarks";
document.getElementById("remarks").value="";
}
else
{
if(remarksValue.length>maxlength)
{
showError("TCW325","","","",true);
return;
}
window.returnValue=remarksValue;
document.getElementById("remarksEntered").value = remarksValue;
window.close();
}
}
function fCase(o)
{
o.value=o.value.toUpperCase();
}
function wc()
{
var bwserAgnt = navigator.userAgent;
if(bwserAgnt.indexOf("Chrome")!= -1)
{
document.onkeydown = function(e)
{
if(remarksValue.length>255 && e.keyCode!=8)
{
var remarksValue = document.getElementById("remarks").value;
remarksValue = remarksValue.slice(0,-1);
document.getElementById("remarks").value = remarksValue;
}
else
wcNew(e);
}
}
else if(bwserAgnt.indexOf("Safari")!= -1)
{
document.onkeydown = function(event)
{
event = event || window.event;
if (event.keyCode == 8 || event.keyCode == 37 ||
event.keyCode == 38 || event.keyCode == 39 ||
event.keyCode == 46 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 16)
{
if(remarksValue.length>255 && e.keyCode!=8)
{
var remarksValue = document.getElementById("remarks").value;
remarksValue = remarksValue.slice(0,-1);
document.getElementById("remarks").value = remarksValue;
}
else
wcNew(event);
return true;
}
else
{
return false;
}
}
}
else if(bwserAgnt.indexOf("Firefox")!= -1)
{
var e = window.event;
if(window.event.keyCode!=8)
{
var remarksValue = document.getElementById("remarks").value;
if(remarksValue.length>255){
remarksValue = remarksValue.slice(0,-1);
}
document.getElementById("remarks").value = remarksValue;
}
wcNew(e);
}
else
{
var e = window.event;
if(window.event.keyCode!=8)
{
var remarksValue = document.getElementById("remarks").value;
if(remarksValue.length>255){
remarksValue = remarksValue.slice(0,-1);
}
document.getElementById("remarks").value = remarksValue;
}
wcNew(e);
}
}
function wcNew(e)
{
characterCode = e.keyCode ;//character code is contained in IE's keyCode property
if(characterCode == 13)
{
var remarksValue = document.getElementById("remarks").value;
document.getElementById("remarksEntered").value = remarksValue;
showDetails();
}
}
function checkMaxLength(me)
{
var maxlength=255;
var strRemarks=me.value;
if(strRemarks.length >= maxlength )
{
alert("Remarks should not exceed 255 characters");
return false;
}
}
function close1()
{
window.close();
}
</script>
<%
if(isScrap.equals("Y")){
%>
<title>Scrap Remarks</title>
<%
}else
{
%>
<title>Reject Remarks</title>
<%}%>
</head>
<body onKeyPress="wc();" >
<form Autocomplete="off" name ="frmMain" id="frmMain" method="post" >
<table>
<tr>
<td>
<INPUT TYPE="text" name="validity" id="validity" CLASS='cwInputBoxReadOnly' readOnly >
</td>
</tr>
<tr>
<td>
<textarea id="remarks" name="remarks" rows="8" cols="25" onkeypress="return checkMaxLength(this);" ><%=rejectRemarks==null?"":rejectRemarks%></textarea>
</td>
</tr>
</table>
<table align="center">
<tr>
<td>
<input type="button" class="grayTabHeaderSelected" id ="OK" name="OK" value="OK" align="CENTER" onClick="javascript:showDetails()"/>
</td>
<td>
<input type="button" class="grayTabHeaderSelected" id ="CANCEL" name="CANCEL" value="CANCEL" align="CENTER" onClick="close1()"/>
</td>
</tr>
</table>
<input type="hidden" id="remarksEntered" name="remarksEntered">
</body>
</html>
在此方法内在此方法内WC(); 已在页面上按下按键。 它会检查所有浏览器的代码。我在Safari浏览器中遇到的问题是在文本框中输入的任何键上。 它出现两次,例如hhii mmyy nnaammee iiss SSaameerr。 在Google中搜索了很多,并根据该代码实施了代码。 我在下面跟随链接http://answers.microsoft.com/zh-cn/windows/forum/windows_7-networking/characters-entered-twice-in-modal-dialog-under/134789c1-7845-4d10-ade2-9ff3b3a60085
当第一个字符重复出现时,例如SSameer,我仍然面临着这个问题。 仅当对该JSP发生新的单击时,才会发生这种情况。
任何帮助表示赞赏。 提前致谢。
我找到了一个解决方案。我也在相同的方法WC()中为按键事件添加了代码; 键=全局变量
document.onkeypress = function(event)
{
if(key == event.keyCode)
{
return false;
}
else
{
key = event.keyCode;
}
}
它为我工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.