Napisany przez: Malinaa 30.08.2021, 11:01:17
Witam,
napisałem taki kod:
Kod
<script>
$("#btnSubmit").click(function() {
var fields = false;
var name = $('#contact_form_name').val(); // input type=text
var email = $('#contact_form_email').val(); // input type=email
var theme = $('#contact_form_theme').val(); // input type=text
var message = $('#contact_form_message').val(); // type textarea
var policy = $('#contact_form_policy').is(':checked'); // input type=checkbox
// INFO: Dla formularza id="formContact" wspolny dla wszystkich pol jes atrybut required="required".
if (!name || !email || !theme || !message || !policy) { fields = true; }
if ((!fields) && ($('#fieldProgress').val() != '')) {
setTimeout(function () {
var newprogress = 100;
$('#progressBox').removeClass('hidden');
$('#progressBar').width(newprogress + "%").attr('aria-valuenow', newprogress);
}, 1000);
}
});
</script>
Przed wykonaniem if ((!fields) && ($('#fieldProgress').val() != '')) należy sprawdzić,
czy wszystkie powyższe o różnych typach pola z tylko jednym wspólnym atrybutem dla wszystkich required="required" zostały wypełnione.
Jak uprościć kod, pozbyć się tylu var'ów?
Tak, aby było super PRO, bo obecnie po prostu działa, a chciałbym lepiej.
Napisany przez: gitbejbe 30.08.2021, 18:41:07
Cytat
https://jqueryvalidation.org/documentation/
Napisany przez: Malinaa 31.08.2021, 08:01:22
Dzięki, ale nie znalazłem odpowiedzi w 10 minut, a gdybym miał więcej czasu nie pytał bym, a doszedł do rozwiązania.
Jeśli ktoś już doszedł, będę wdzięczny za kilka linii kodu.
Napisany przez: Pyton_000 31.08.2021, 09:14:06
A może po prostu coś takiego?
Cytat
<form>
<input type="text" required name="test1"/>
<input type="text" required name="test2"/>
<button id="sent">
Send
</button>
</form>
document.querySelector("#sent").addEventListener('click', (event) => {
if(event.target.form.checkValidity()) {
alert('Form is ok');
return;
} else {
alert("Form is NOT ok")
}
event.preventDefault;
})
Napisany przez: Malinaa 13.09.2021, 09:57:19
Mam tak:
Kod
document.querySelector("#btnSubmit").addEventListener('click', (event) => {
if (event.target.form.checkValidity() && ($('#fieldProgress').val() != '')) {
setTimeout(function () {
var newprogress = 100;
$('#progressBox').removeClass('hidden');
$('#progressBar').width(newprogress + "%").attr('aria-valuenow', newprogress);
}, 1000);
}
event.preventDefault;
})
zdaje się, że jest Super.
Thnx
Napisany przez: Pyton_000 21.09.2021, 10:23:52
To może pozbądź się całkiem jQ
Kod
document.querySelector("#btnSubmit").addEventListener('click', (event) => {
if (event.target.form.checkValidity() && ($('#fieldProgress').val() != '')) {
setTimeout(function () {
const newprogress = 100;
let progessBar = document.querySelector("#progressBox");
progessBar.classList.remove('hidden');
progessBar.setAttribute('width', newprogress + "%");
progessBar.setAttribute('aria-valuenow', newprogress);
}, 1000);
}
event.preventDefault;
})
Napisany przez: trueblue 21.09.2021, 12:28:06
Tak na 100%:
if (event.target.form.checkValidity() && (document.querySelector('#fieldProgress').value != '')) {
.
.
.
event.preventDefault();
Napisany przez: Pyton_000 23.09.2021, 18:21:59
True. Umnknął mi ten kawałek