webForumDet fria alternativet

sätta punkt i text fält....

JavaScript

10 svar · 209 visningar · startad av LearningASP

Medlem sedan okt. 2001127 inlägg
Frågan#1

Jag tror att jag postar i rätt forum ;)

Jag har sett att Nordbanken har en funktion när man fyller i deras fält med hur mycket pengar man skall flytta så skriver man t ex 10000 då är det "något" ;) som fixar dettta till:
10.000

Hur får man denna funktion så vill jag också ha det :)

Tack på förhand

------------------
----------------------
Varje dag är en ny lektion ;)

Medlem sedan aug. 200189 inlägg
Medlem sedan okt. 2001127 inlägg
#3

hittade

<HEAD>

<SCRIPT LANGUAGE="JavaScript">

function commaSplit(srcNumber) {
var txtNumber = '' + srcNumber;
if (isNaN(txtNumber) &#0124;&#0124; txtNumber == "") {
alert("Oops!  That does not appear to be a valid number.  Please try again.");
fieldName.select();
fieldName.focus();
}
else {
var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');
var arrNumber = txtNumber.split('.');
arrNumber[0] += '.';
do {
arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
} while (rxSplit.test(arrNumber[0]));
if (arrNumber.length > 1) {
return arrNumber.join('');
}
else {
return arrNumber[0].split('.')[0];
      }
   }
}

</script>

</HEAD>

<BODY>

<form name="addcar">
Input a Number: <input type=text name="FormPris" size=20 value="" onBlur="document.addcar.FormPris.value=commaSplit(document.addcar.FormPris.value);"> 
</form>

men vill gärna ha att det blir punkt istället för comma, provade lite själv men det blev fel. Den otg bort alla nollor bakom så 150000 blev 150

Tack på förhand

------------------
----------------------
Varje dag är en ny lektion ;)

Medlem sedan aug. 200189 inlägg
#4

Ja just det... hade själv lite problem när jag försökte använda den koden kom jag ihåg nu... :)
så jag använde ett annat script istället...

function comma(number) {

number = '' + number;
if (number.length > 3) {
var mod = number.length % 3;
var output = (mod > 0 ? (number.substring(0,mod)) : '');
for (i=0 ; i < Math.floor(number.length / 3); i++) {
if ((mod == 0) && (i == 0))
output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
else
output+= '.' + number.substring(mod + 3 * i, mod + 3 * i + 3);
}
return (output);
}
else return number;
}
Medlem sedan okt. 2001127 inlägg
#5

JAg har en fråga, Jag har hittat ett kanon bra script som gör detta fastän är ganska avancerat ;) frågan är hur tar man bort decimal delen??? snälla kan nån guide mig genom detta please :OO

<html>
<head>
<title></title>
<script language="JavaScript1.2">
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false

function kolla_belopp(){
	var fel_rad=""
	var leading_zeros=true
	var x_decimal=false
	var x_tusental=false
	var x_heltal=""
	var x_decimaldel=""
		
	if (document.mainform.FormPris.value.length>0){
		for (i=0; i<document.mainform.FormPris.value.length; i++){
		
			if ((document.mainform.FormPris.value.charAt(i)==",") && (x_decimal==false)){
				
				x_decimal=true
				x_tusental=true
				if (i==0){
					x_heltal="0"
				}
			}
			
			else if  ((document.mainform.FormPris.value.charAt(i)==".")  && (x_tusental==false)){
				if ((document.mainform.FormPris.value.length-i==2) &#0124;&#0124; (document.mainform.FormPris.value.length-i==3)){
					
					x_decimal=true
					if (i==0){
						x_heltal="0"
					}
				}
			}
			
			else if  (document.mainform.FormPris.value.charAt(i)=="."){
				x_tusental=true
			}
			
			else if((document.mainform.FormPris.value.charAt(i)==0) && (leading_zeros) && !(x_decimal)){
			}
			else if((document.mainform.FormPris.value.charAt(i)>=0) && (document.mainform.FormPris.value.charAt(i)<=9)){
				
				if(document.mainform.FormPris.value.charAt(i)>0){
					leading_zeros=false
				}
				
				if(x_decimal){
					x_decimaldel+=document.mainform.FormPris.value.charAt(i)
				}
				
				else{
					x_heltal+=document.mainform.FormPris.value.charAt(i)
				}
			}
			
			else if((isNaN(document.mainform.FormPris.value.charAt(i))) && (document.mainform.FormPris.value.charAt(i) != "." ) && (document.mainform.FormPris.value.charAt(i) != ",")){
				fel_rad="Fel Format.";
				break;
			}
		}
		
		if (leading_zeros){
			fel_rad="Fyll i belopp."
		}
	}
	else{
		fel_rad="Fyll i belopp."
	}
	
	
	if (fel_rad==""){
		akt_belopp=eval(x_heltal+"."+x_decimaldel)
		document.mainform.FormPris.value=konvert_belopp(akt_belopp)
		return true
	}
	else{
		
		document.mainform.FormPris.value=fel_rad
		return false
	}
}

function konvert_belopp(belopp){
	var x_decimal=false
	var x_decimaldel=""	
	
	var temp=""+belopp
	for (i=0; i<temp.length; i++){
		if(temp.charAt(i)=="."){
			x_decimal=true
		}
		else{
			if(x_decimal){
				x_decimaldel+=temp.charAt(i)
				if (x_decimaldel.length==2){
					x_decimaldel+="."
				}
			}
		}
	}
	if (x_decimaldel.length>2){
		
		x_decimaldel=""+Math.round(x_decimaldel)
		
		if (x_decimaldel.length==1){
			x_decimaldel="0"+x_decimaldel
		}
	}
	
	
	temp=""+parseInt(belopp)
	if (temp=="NaN"){
		belopp="0"
	}
	
	else{
		belopp=""
		for (i=0; i<temp.length; i++){
			belopp+=temp.charAt(i)
			if((temp.length-i==7) &#0124;&#0124; (temp.length-i==4)){
				belopp+="."
			}
		}
	}	
	belopp+=","
	if (x_decimaldel.length==0){
		x_decimaldel="00"
	}
	else if (x_decimaldel.length==1){
		x_decimaldel+="0"
	}
	belopp+=x_decimaldel
	return(belopp)
}

</script>

</head>

<form name="mainform">
<input type="text" name="FormPris" size="10" maxlength="10" onBlur="kolla_belopp()">
			
</form>
</body>
</html>

Detta är ju nåt som kan komma upp på WF-script??

Jag vet att jag e jobbig nu :r

jag hade gjort det själv, OM jag visste hur man gör. Jag försökte lite själv och jag kan säga så mycket som att jag inte skall prova igen för det blev FEL!!!

------------------
----------------------
Varje dag är en ny lektion ;)

[Redigerat av LearningASP den 10 okt 2001]

Medlem sedan okt. 2001127 inlägg
#6

Ingen som vill guida mig igenom detta???

Vill lära mig + ha detta script

Tack på förhand
JavaLuver

------------------
----------------------
Varje dag är en ny lektion ;)

Medlem sedan aug. 200189 inlägg
#7

Vad är det i det scriptet du eftersöker?
Ändrade lite i koden som jag la in innan. Som jag förstod det så vill du ha detta ;)

<html>
<head>
<title></title>
<script language="JavaScript1.2">
function comma(number) {

var temp = "";
number = '' + number;
splitstring = number.split(".");
for(i = 0; i < splitstring.length; i++)
temp += splitstring[i];
number = temp
number = '' + number;
if (number.length > 3) {
var mod = number.length % 3;
var output = (mod > 0 ? (number.substring(0,mod)) : '');
for (i=0 ; i < Math.floor(number.length / 3); i++) {
if ((mod == 0) && (i == 0))
output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
else
output+= '.' + number.substring(mod + 3 * i, mod + 3 * i + 3);
}
return (output);
}
else return number;
}

</script>

</head>

<form name="mainform">
<input type="text" name="FormPris" size="10" maxlength="10" onBlur="this.value=comma(this.value)">

</form>
</body>
</html>
Medlem sedan okt. 2001127 inlägg
#8

Kanon ;)

Fråga, hur jobbigt är det att lägga till så att , och blanksteg inte tillåts utan då suddas det ut, alltså hela beloppet man skrivit in suddas ut och det kommer upp en text Fel i textfältet

------------------
----------------------
Varje dag är en ny lektion ;)

Medlem sedan aug. 200189 inlägg
#9

Så här?
Säger även ifrån om man skriver in text.

var temp = "";
number = '' + number;
[b]if (isNaN(number)) {
return "Fel"
}[/b]
splitstring = number.split(".");
for(i = 0; i < splitstring.length; i++)
temp += splitstring[i];
number = temp
number = '' + number;
if (number.length > 3) {
var mod = number.length % 3;
var output = (mod > 0 ? (number.substring(0,mod)) : '');
for (i=0 ; i < Math.floor(number.length / 3); i++) {
if ((mod == 0) && (i == 0))
output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
else
output+= '.' + number.substring(mod + 3 * i, mod + 3 * i + 3);
}
return (output);
}
else return number;
}
Medlem sedan okt. 2001127 inlägg
#10

Perfa, ;) ;) ;) Tack sundog det funkar utmärkt det funkar ju bättre än den FETA koden jag la in, den här kan ju samma, tack för all hjälp :) :)

------------------
----------------------
Varje dag är en ny lektion ;)

Medlem sedan aug. 200189 inlägg
#11

Vassego...
Såg dock att man kunde skriva in mellanslag efter.
Testa detta istället...

function comma(number) {

var temp = "";
number = '' + number;
[b]for (var i = 0; i < number.length; i++) { 
if (isNaN(number) &#0124;&#0124; number.charAt(i)==" ") {
return "Fel"
}
}[/b]
splitstring = number.split(".");
for(i = 0; i < splitstring.length; i++)
temp += splitstring[i];
number = temp
number = '' + number;
if (number.length > 3) {
var mod = number.length % 3;
var output = (mod > 0 ? (number.substring(0,mod)) : '');
for (i=0 ; i < Math.floor(number.length / 3); i++) {
if ((mod == 0) && (i == 0))
output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
else
output+= '.' + number.substring(mod + 3 * i, mod + 3 * i + 3);
}
return (output);
}
else return number;
}
261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)