Как правильно получить входные данные и вызвать их в функции? - PullRequest
0 голосов
/ 19 июня 2020

Как правильно получить входные данные и вызвать их в функции? Я пытаюсь вызвать эту функцию в кнопке отправки, но не вижу никаких действий.

        <input style="display:none;" class="form-control col-md-5 col-8" id="pesel" minlenght="11"
                           maxlength="11"
                           type="text" name="pesel"
                           placeholder="PESEL" required>

        <p><input class="submit-button" type='submit' name='submit' value='Wyślij' onclick="isValidPesel()"></p>
        <span id="error"></span>
                 <script>
                 function isValidPesel(pesel) {
                    function validatepesel(pesel) {
                        var reg = /^[0-9]{11}$/;
                        if (reg.test(pesel) == false) {

                            console.log("error");
                            document.getElementById('error').innerHTML = 'Niepoprawny numer pesel';
                            return false;
                        } else {
                            var digits = ("" + pesel).split("");
                            if ((parseInt(pesel.substring(4, 6)) > 31) || (parseInt(pesel.substring(2, 4)) > 12))
                                return false;
                            console.log("Error");
                            document.getElementById('error').innerHTML = 'Niepoprawny numer pesel';
                            var checksum = (1 * parseInt(digits[0]) + 3 * parseInt(digits[1]) + 7 * parseInt(digits[2]) + 9 * parseInt(digits[3]) + 1 * parseInt(digits[4]) + 3 * parseInt(digits[5]) + 7 * parseInt(digits[6]) + 9 * parseInt(digits[7]) + 1 * parseInt(digits[8]) + 3 * parseInt(digits[9])) % 10;
                            if (checksum == 0) checksum = 10;
                            checksum = 10 - checksum;

                            return (parseInt(digits[10]) == checksum);
                        }
                    }
                    var pesel = document.getElementById("pesel").value;
                    console.log(pesel);
                }
                </script>

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Это должно сработать: (Без изменений в HTML)

<input style="display:none;" class="form-control col-md-5 col-8" id="pesel" minlenght="11" maxlength="11" type="text" name="pesel" value="324983274823" placeholder="PESEL" required>
<p>
    <input class="submit-button" type='submit' name='submit' value='Wyślij' onclick="isValidPesel()">
</p>
<span id="error"></span>

JavaScript: ошибка заключалась в том, что вы не вызывали функцию validatepesel в конце.

function isValidPesel(pesel) {
    function validatepesel(pesel) {
        var reg = /^[0-9]{11}$/;
        if (reg.test(pesel) == false) {

            console.log("error");
            document.getElementById('error').innerHTML = 'Niepoprawny numer pesel';
            return false;
        } else {
            var digits = ("" + pesel).split("");
            if ((parseInt(pesel.substring(4, 6)) > 31) || (parseInt(pesel.substring(2, 4)) > 12))
                return false;
            console.log("Error");
            document.getElementById('error').innerHTML = 'Niepoprawny numer pesel';
            var checksum = (1 * parseInt(digits[0]) + 3 * parseInt(digits[1]) + 7 * parseInt(digits[2]) + 9 * parseInt(digits[3]) + 1 * parseInt(digits[4]) + 3 * parseInt(digits[5]) + 7 * parseInt(digits[6]) + 9 * parseInt(digits[7]) + 1 * parseInt(digits[8]) + 3 * parseInt(digits[9])) % 10;
            if (checksum == 0) checksum = 10;
            checksum = 10 - checksum;

            return (parseInt(digits[10]) == checksum);
        }
    }
    var pesel = document.getElementById("pesel").value;
    validatepesel(pesel);
}
0 голосов
/ 19 июня 2020
Method 1:
<input class="submit-button" type='submit' name='submit' value='Wyślij' onclick="isValidPesel(this)">
<script>
function isValidPesel(element) {
  console.log(element.value);
}

</script>
Method 2:
 <input type="hidden" value="Wyślij" id="myInput">
<input class="submit-button" type='submit' name='submit' onclick="isValidPesel(this)">
<script>
function isValidPesel() {
  var str = $("#myInput").val();
  console.log(str);
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...