weryfikacja formularza lub bez weryfikacji 2 przyciski

0

Witam, mam problem jak zrobić weryfikację poprawności danych wprowadzonych do formularza przy wysłaniu jednym przyciskiem (działa) ale przy naciśnięciu drugiego przycisku formularz ma być wysłany bez weryfikacji (wysyłam sobie numer przycisku i odpowiednio inaczej zapisuję dane)?
to mój kod:

<html>
<head>
<script type="text/javascript">
    window.onload = Laduj;
    function Laduj()
    {
        document.forms['form'].onsubmit = Verify;
    }

    function Verify()
    {
        var NUMER2 = document.forms['form'].NUMER2.value;
        var NUMER3 = document.forms['form'].NUMER3.value;
        var error = false;

        if (NUMER2 == 2)
        {
            error = true;
        }

        if (error)
        {
            alert('wypelnij poprawnie pole');
            return false;
        }
    }
</script>

</head>
<body>

<form enctype="multipart/form-data" action="#" method="post"  NAME="form">

<INPUT type="HIDDEN" NAME="NUMER1"><br/ >
numer2<INPUT type="text" NAME="NUMER2"><br/ >
numer3<INPUT type="text" NAME="NUMER3"><br/ >

<button type="submit" name="dodaj_dost" value="2">dodaj</button><br/ >
<button type="submit" name="dodaj_dost" value="1">zapisz</button><br/ >
</form>

</body>
</html>

1

OnSubmit zostaje wywołane w chwili wysyłki formularza. Zamiast tego może oskryptuj sobie zdarzenie OnClick wybranego przycisku.

Możesz też rzucić okiem na ten link - https://stackoverflow.com/questions/3577469/form-onsubmit-determine-which-submit-button-was-pressed

0

Zmieniłem na coś takiego:

<html>
<head>
<title>test1</title>
<script type="text/javascript">
var przycisk;
function valid() {

    var NUMER2 = document.forms['form'].NUMER2.value;
    var NUMER3 = document.forms['form'].NUMER3.value;
    var error = false;

    if (przycisk == 2)
    {
        if (NUMER2 == 2)
        {
            error = true;
            document.forms['form'].NUMER2.style.border = "3px solid #FF0000";
        }
        if (error)
        {
            alert('wypelnij poprawnie pole | ' + przycisk + ' | ' + NUMER2 + ' - ' + NUMER3);
            return false;
        }
    }
}
</script>

</head>
<body>

<form action="" onsubmit="valid()" NAME="form">
    numer2 <INPUT type="text" NAME="NUMER2"><br/ >
    numer3 <INPUT type="text" NAME="NUMER3"><br/ >
    <input type="submit" onclick="przycisk='1'" value="Save" />
    <input type="submit" onclick="przycisk='2'" value="Add" />
</form>
</body>
</html>

mniej więcej o to mi chodzi, ale oprócz wyrzucenia komunikatu i zmiany stylu (przy wartości błędnej) dalej wysyła formularz, co poprawić?

0
<form name="jakasForma" onsubmit="return sprawdzWprowadzoneDane();">

W podanej funkcji sprawdzasz warunek i w zależności od tego, czy jest OK zwracasz true (walidacja poszła OK i możemy iść dalej) albo false - dane są nieprawidłowe, blokujemy wysyłkę formularza. Możesz rzucić okiem na https://stackoverflow.com/questions/8664486/javascript-code-to-stop-form-submission

1

Dziękuję za pomoc @cerrato, była nieoceniona :)
Poprawny działający kod:

<html>
<head>
<title>test1</title>
<script type="text/javascript">
var przycisk;
function valid() {

    var NUMER2 = document.forms['form'].NUMER2.value;
    var NUMER3 = document.forms['form'].NUMER3.value;
    var error = false;

    if (przycisk == 2)
    {
        if (NUMER2 == 2)
        {
            error = true;
            document.forms['form'].NUMER2.style.border = "3px solid #FF0000";
        }
        if (error)
        {
            alert('wypelnij poprawnie pole | ' + przycisk + ' | ' + NUMER2 + ' - ' + NUMER3);
            return false;
        }
    }
}
</script>

</head>
<body>

<form action="" onsubmit="return valid()" NAME="form">
    numer2 <INPUT type="text" NAME="NUMER2"><br/ >
    numer3 <INPUT type="text" NAME="NUMER3"><br/ >
    <input type="submit" onclick="przycisk='1'" value="Save" />
    <input type="submit" onclick="przycisk='2'" value="Add" />
</form>
</body>
</html>

nie wiem jak zamknąć wątek jako "rozwiązany"

1 użytkowników online, w tym zalogowanych: 0, gości: 1