# auf negative Zahlen prüfen



## aTa (23. Oktober 2006)

Hi,
ich habe hier eine JS-Funktion die Zahlen validiert also auf zwei Nachkommastellen, die Funktion hab ich von nem Bekannten aber leider keine Ahnung davon, mein Problem ist nun, das ich nur negative Zahlen zulassen will und keine positiven nur wie sag ich das der Funktion?
Hier der Code

```
function validate_summe_netto(){
	if(document.edit_belegerfassung.summe_netto.value != "" ){
		var charpos = document.edit_belegerfassung.summe_netto.value.search("[^0-9\.-]");
		if(document.edit_belegerfassung.summe_netto.value.length > 0 &&  charpos >= 0)
		{
			strError =" Summe netto:  Nur Zahlen erlaubt ";
			alert(strError);
			document.edit_belegerfassung.summe_netto.focus();
			return false;

		}
		document.edit_belegerfassung.summe_netto.value=FormatNumber(edit_belegerfassung.summe_netto.value, 2, true, false,true);
	}
}
```


----------



## con-f-use (23. Oktober 2006)

```
function validate_summe_netto(){
    if(document.edit_belegerfassung.summe_netto.value != "" ){
        var obj = document.edit_belegerfassung.summe_netto;
        var charpos = obj.value.search("[^0-9\.-]");
        if(obj.value.length > 0 &&  charpos >= 0 && obj.value.match('/^-.*$/') )
        {
            strError = "Summe netto: Nur negative Zahlen erlaubt ";
            alert(strError);
            obj.focus();
            return false;

        }
        obj.value=  FormatNumber(obj.value, 2, true, false,true);
    }
}
```
 Das sollte gehen, lass dir aber noch gesagt sein, dass es nicht der Sinn dieses Forums ist, dir deine Scripts anzupassen, ohne dass du irgent etwas tust. Normalerweisse wird erwartet, dass du dir selber die Javascript-Grundlagen aneignest und wir dir nur mit ein paar Tipss auf die Sprünge helfen. Hier hätte ich normalerweise nur den Tipp String.match() gegeben.


----------



## aTa (23. Oktober 2006)

Danke ich weiss schon dass ich es selbst machen soll, aber hab leider keine Zeit.
Das prüfen tut irgendwie net...


----------



## con-f-use (23. Oktober 2006)

Irgentwelche Fehlermeldungen? Bitte Jabascript-Konsole deines Browsers anschauen.


----------



## aTa (23. Oktober 2006)

leider nicht, wenn ich jedoch Buchstaben eingeben schreibt er NaN.00 ins Inputfeld


----------



## con-f-use (23. Oktober 2006)

Poste mal den Code von der Funktion "FormatNumber()" und den html-Code mit dem du die ganze Schose aufrufst.


----------



## aTa (23. Oktober 2006)

Javascript

```
function FormatNumber(num, decimalNum, bolLeadingZero, bolParens, bolDecimals)
/* IN - num:            the number to be formatted
decimalNum:     the number of decimals after the digit
bolLeadingZero: true / false to use leading zero
bolParens:      true / false to use parenthesis for - num
bolDecimals        true/ false to fill the decimals with zeros

RETVAL - formatted number
*/
{
	var tmpNum = num;

	// Return the right number of decimal places
	tmpNum=parseFloat(tmpNum);
	tmpNum *= Math.pow(10,decimalNum);
	tmpNum = Math.floor(tmpNum);
	tmpNum /= Math.pow(10,decimalNum);

	var tmpStr = new String(tmpNum);

	// See if we need to hack off a leading zero or not
	if (!bolLeadingZero && num < 1 && num > -1 && num !=0)
	if (num > 0)
	tmpStr = tmpStr.substring(1,tmpStr.length);
	else
	// Take out the minus sign out (start at 2)
	tmpStr = "-" + tmpStr.substring(2,tmpStr.length);

	if (bolDecimals)
	{
		checkpos=tmpStr.indexOf('.');
		if (checkpos==-1) tmpStr=tmpStr+'.';
		while(tmpStr.indexOf('.')>(tmpStr.length-3))
		{
			tmpStr=tmpStr+'0';
		}
	}


	// See if we need to put parenthesis around the number
	if (bolParens && num < 0)
	tmpStr = "(" + tmpStr.substring(1,tmpStr.length) + ")";

	return tmpStr;
}

function validate_summe_netto(){
    if(document.edit_belegerfassung.summe_netto.value != "" ){
        var obj = document.edit_belegerfassung.summe_netto;
        var charpos = obj.value.search("[^0-9\.-]");
        if(obj.value.length > 0 &&  charpos >= 0 && obj.value.match('/^-.*$/') )
        {
            strError = "Summe netto: Nur negative Zahlen erlaubt ";
            alert(strError);
            obj.focus();
            return false;

        }
        obj.value=  FormatNumber(obj.value, 2, true, false,true);
    }
}
```

Hier der Aufruf in Html

```
echo '<td>Netto: <font color=red>*</font></td><td colspan="3"><input onBlur="setmwst(),validate_summe_netto()" onclick="setmwst3(),validate_summe_netto()" type="text" value="'.$summe_netto.'" name="summe_netto" >&euro;</td></tr>';
```


----------

