webForumDet fria alternativet

funkar i IE men inte FF

9 svar · 366 visningar · startad av pb81

pb81Medlem sedan okt. 200688 inlägg
#1
function ValidateChange(orderAmount,newAmount,Curr,P37)
{	
	var strNewAmount = newAmount;
	
	if (IsNumeric(strNewAmount) == true)
	{
		if (strNewAmount.length != 0)
		{
				
			dot = ".";
			comma = ",";

				
			while (strNewAmount.indexOf(comma)>-1) {
				pos = strNewAmount.indexOf(comma);
				strNewAmount = "" + (strNewAmount.substring(0, pos) + dot + 
				strNewAmount.substring((pos + comma.length), strNewAmount.length));
			}
				
			while (orderAmount.indexOf(comma)>-1) {
				pos = orderAmount.indexOf(comma);
				orderAmount = "" + (orderAmount.substring(0, pos) + dot + 
				orderAmount.substring((pos + comma.length), orderAmount.length));
			}
				
			var dblorderAmount = parseFloat(orderAmount);
			var dblnewAmount = parseFloat(strNewAmount);
				
			var arrNewAmount = strNewAmount.split(".");
	
			if(arrNewAmount.length == 2)
			{
				if (arrNewAmount[0] == '')
				{
					strNewAmount = "0" + strNewAmount;
					dblnewAmount = parseFloat(strNewAmount);
					dblnewAmount = dblnewAmount.toFixed(2);
				}
			
				if (arrNewAmount[1].length == 0)
				{
					strNewAmount = strNewAmount + "00";
					dblnewAmount = parseFloat(strNewAmount);
					dblnewAmount = dblnewAmount.toFixed(2);
				}
				
				if (arrNewAmount[1].length == 1)
				{
					strNewAmount = strNewAmount + "0";
					dblnewAmount = parseFloat(strNewAmount);
					dblnewAmount = dblnewAmount.toFixed(2);
						
				}
					
				if (arrNewAmount[1].length > 2)
				{

					dblnewAmount = dblnewAmount.toFixed(2);
					strNewAmount = dblnewAmount;
					
				}
			}
			
	
					if ((dblnewAmount <= dblorderAmount) && (arrNewAmount.length < 3))
					{
							
						while (strNewAmount.indexOf(dot)>-1) {
							pos = strNewAmount.indexOf(dot);
							strNewAmount = "" + (strNewAmount.substring(0, pos) + comma + 
							strNewAmount.substring((pos + dot.length), strNewAmount.length));
					    }
	
						if (confirm("Are you sure you want to settle "+ strNewAmount +" "+ Curr +" ?")) {
											
								window.open("Capture.asp?Action=Capture&Type=ChangeAmt&ID="+ P37 +"&newAmount="+ strNewAmount +"","link","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,fullscreen=no,width=446,height=250");

						} 

					}
					else{
						alert('Invalid amount!');

					}
		}
		else
		{
			alert('Invalid amount!');
		}
	}
	else
	{
		alert('Invalid amount!');
	}
}

Har ni några förslag?

colioneMedlem sedan juni 20014 421 inlägg
#2

vart funkar den inte?

pb81Medlem sedan okt. 200688 inlägg
#3

Det verkar som att den inte kör scriptet..
Det händer inget när man klickar på länken

<a href=""javascript:ValidateChange(' bla bla bla

DenkanMedlem sedan juni 2002256 inlägg
#4

Kör lite enkel felsökning på den och släng in några alert() här och var för att se hur långt den kommer.

function ValidateChange(orderAmount,newAmount,Curr,P37)
{	
	[blue]alert('funktionen startar');[/blue]
	var strNewAmount = newAmount;
	
	if (IsNumeric(strNewAmount) == true)
	{
		[blue]alert('IsNumeric(strNewAmount) == true');[/blue]
		if (strNewAmount.length != 0)
		{
			[blue]alert('strNewAmount != 0');[/blue]

(...)
pb81Medlem sedan okt. 200688 inlägg
#5

hehe den verka fastna på första alerten..

Peter SMedlem sedan dec. 20025 483 inlägg
#6

Var är IsNumeric() definierad?

Vad säger felkonsolen i FF?

colioneMedlem sedan juni 20014 421 inlägg
#7

använd isNaN istället. isNumeric är specifik för JScript.

skriv om såhär: if (!IsNaN(strNewAmount) == true)

pb81Medlem sedan okt. 200688 inlägg
#8

den säger att this.changeamt inte har någon egenskap..

<a href="javascript:ValidateChange('1,5',this.ChangeAmt.value,'SEK','531');">

ChangeAmt är en textinput där man skriver ett värde som får vara högst 1,5
Verkar som att den inte klarar hämta värdet från textfältet då.. men hur kan detta funka så bra i IE men inte FF

pb81Medlem sedan okt. 200688 inlägg
#9

kan jag skriva något annat än this.ChangeAmt.value för att hämta värdet ur textinputen ChangeAmt? Provade att sätta fast värde där istället för this.ChangeAmt.value och då funkade det bra

Peter SMedlem sedan dec. 20025 483 inlägg
#10

Skriv

document.forms['namn_på_formulär'].ChangeAmt.value
253 ms totalt · 3 externa anrop · v20260731065814-full.30151723
129 ms — hämta forumlista (db)
122 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)