auf negative Zahlen prüfen

aTa

Erfahrenes Mitglied
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
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);
	}
}
 
Code:
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.
 
Zuletzt bearbeitet:
Danke ich weiss schon dass ich es selbst machen soll, aber hab leider keine Zeit.
Das prüfen tut irgendwie net...
 
Javascript
Code:
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
PHP:
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>';
 

Neue Beiträge

Zurück