Hi,
I have a script to format a text filed for currency. In general it works fine with 2 exceptions.
1) If you are in the field and enter the wrong amount when you back space the float does not change...
EXP:
you enter 1.50
hitting back space makes it 1.5
it should become .15
2) if you need to go back and change the entire amount, you must highlight the value and hit the delete key. It should allow you to highlight and start entering the new amount with out having to hit delete
EXP:
Amount entered 1.50
If the amount was to be 1.90 and you highlight the value 1.50 and begin to enter 1.90 the value changes to 1,501.90
I have made several attemtps to change and edit with no luck over the corse of the week. So I turn to the collective brain power of the Bytes community.
Below is the script and the form field information. Oh and FYI the script is in a PHP page.
Thanks.
Form Field
I have a script to format a text filed for currency. In general it works fine with 2 exceptions.
1) If you are in the field and enter the wrong amount when you back space the float does not change...
EXP:
you enter 1.50
hitting back space makes it 1.5
it should become .15
2) if you need to go back and change the entire amount, you must highlight the value and hit the delete key. It should allow you to highlight and start entering the new amount with out having to hit delete
EXP:
Amount entered 1.50
If the amount was to be 1.90 and you highlight the value 1.50 and begin to enter 1.90 the value changes to 1,501.90
I have made several attemtps to change and edit with no luck over the corse of the week. So I turn to the collective brain power of the Bytes community.
Below is the script and the form field information. Oh and FYI the script is in a PHP page.
Thanks.
Code:
// JavaScript Document
function currencyFormat(fld, milSep, decSep, e) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.keyCode : e.which;
if (whichCode == 8) return true; // BackSpace
if (whichCode == 9) return true; // Tab
if (whichCode == 46) return true; // Delete
key = String.fromCharCode(whichCode); // Get key value from key code
if (strCheck.indexOf(key) == -1) return false; // Not a valid key
len = fld.value.length;
for(i = 0; i < len; i++)
if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
aux = '';
for(; i < len; i++)
if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
aux += key;
len = aux.length;
if (len == 0) fld.value = '';
if (len == 1) fld.value = '0'+ decSep + '0' + aux;
if (len == 2) fld.value = '0'+ decSep + aux;
if (len > 2) {
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 3) {
aux2 += milSep;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}
fld.value = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--)
fld.value += aux2.charAt(i);
fld.value += decSep + aux.substr(len - 2, len);
}
return false;
}
Code:
<input name="passChg" type="text" value="<? print $_SESSION['passChg']; ?>" style='font:8pt Verdanda, Arial, Helvetica, sans-serif; border:1 solid #FF9F9F;' onFocus="this.style.backgroundColor='#ffffCC', this.select();" onBlur="this.style.backgroundColor='#ffffff', this.form.passOtChg.value=this.form.passChg.value;" onKeyPress="return(currencyFormat(this,',','.',event))" size="11" maxlength="10" />
Comment