/**/
/*
This function is use to check the length whether current length is overflow the designated length, on control get focus or on key up
* ctrlId: target control
* return: max length
*/
function
lengthCheck(ctrlId,max)
...
{
var
oControl
=
ctrlId;
var
oX
=
getAbsoluteLeft(oControl);
var
oY
=
getAbsoluteTop(oControl);
var
oCounter
=
document.getElementById(
'
dCounter
'
);
oCounter.style.display
=
'
block
'
;
if
(getBytesLength(oControl.value)
>
max)
...
{
for
(
var
i
=
1
; i
<
oControl.value.length;i
++
)
...
{
//
alert(getBytesLength(oControl.value.substr(0,i)));
if
(getBytesLength(oControl.value.substr(
0
,i
+
1
))
>=
max)
...
{
oControl.value
=
oControl.value.substr(
0
,i);
}
}
}
if
(oCounter
!=
null
)
...
{
oCounter.innerHTML
=
getBytesLength(oControl.value)
+
"
/
"
+
max;
oCounter.style.left
=
oX
-
20
;
oCounter.style.top
=
oY
-
20
;
}
}
/**/
/*
This function is use to check the length whether current length is overflow the designated length, on control lose focus
* ctrlId: target control
* return: max length
*/
function
lengthCheckOver(ctrlId,max)
...
{
var
oControl
=
ctrlId;
var
oX
=
getAbsoluteLeft(oControl);
var
oY
=
getAbsoluteTop(oControl);
var
oCounter
=
document.getElementById(
'
dCounter
'
);
if
(getBytesLength(oControl.value)
>
max)
...
{
for
(
var
i
=
1
; i
<
oControl.value.length;i
++
)
...
{
//
alert(getBytesLength(oControl.value.substr(0,i)));
if
(getBytesLength(oControl.value.substr(
0
,i
+
1
))
>=
max)
...
{
oControl.value
=
oControl.value.substr(
0
,i);
}
}
}
if
(oCounter
!=
null
)
...
{
oCounter.innerHTML
=
getBytesLength(oControl.value)
+
"
/
"
+
max;
oCounter.style.left
=
oX
-
20
;
oCounter.style.top
=
oY
-
20
;
oCounter.style.display
=
'
none
'
;
}
}
/**/
/*
This function is use to get bytes length from a string which either ASCII or Uncode.
* str: appointed string
* return: bytes length
*/
function
getBytesLength(str)
...
{
var
re
=/
[