mam taki problem stworzyłem Plugin do Wordpressa i dodałem Javascript do sprawdzania formularzy.
Po kliknięciu wyskakuje alert 'Please enter a value for the Name' ale akcja wykonuje się dalej. Pewnie jest to sprawka wordpressa ale nie wiem jak temu zardzić. Help Me.
Nie wiem jak sprawić aby po kliknięciu oczywiście jeśli dane są nie prawidłowe formularz nie zapisywał danych do bazy.
Mam to tak oprogramowane chodzi o ostatnią funkcję pokazuje alert ale po chwili formularz i tak zapisuje dane:
CODE
<script type="text/javascript">
function validateRegEx(regex, input, helpText, helpMessage) {
// Sprawdzamy czy dane wejściowe są w porządku
if (!regex.test(input)) {
// Dane są nieprawidłowe, a zatem wyświetlamy komunikat i zwracamy false
if (helpText != null)
helpText.innerHTML = helpMessage;
return false;
}
else {
// Dane są OK., zatem czyścimy komunikat i zwracamy true
if (helpText != null)
helpText.innerHTML = "";
return true;
}
}
function validateNonEmpty(inputField, helpText) {
// Sprawdzamy czy pole zawiera jakąkolwiek treść
return validateRegEx(/.+/,
inputField.value, helpText,
"Proszę podać wartość.");
}
function validateLength(minLength, maxLength, inputField, helpText) {
// Sprawdzamy czy łańcuch znaków nie jest krótszy od minLength, a jednocześnie
// czy nie jest dłuższy od maxLength.
return validateRegEx(new RegExp("^.{" + minLength + "," + maxLength + "}$"),
inputField.value, helpText,
"Proszę podać tekst o długości od " + minLength + " do " + maxLength +
" znaków.");
}
function validatecost(inputField, helpText) {
// Najpierw sprawdzamy czy pole zawieraj jakieś dane
if (!validateNonEmpty(inputField, helpText))
return false;
// Następnie sprawdzamy czy wartość wpisana w polu jest datą
return validateRegEx(/^\d{1}\,(\d{2})$/,
inputField.value, helpText,
"Proszę wpisać prawidłową cenę (np.: 14/01/1975).");
}
function placeOrder(form) {
if (
validatecost(form["pricelist_normal_monday"], form["pricelist_normal_monday_help"]) //&&
// Przesyłamy zamówienie na serwer
form.submit();
} else {
alert('Please enter a value for the Name');
return false;
}
}
</script>
Kod
<input type="submit" class="button-primary" name="submit" onclick="placeOrder(this.form);" value="<?php _e('Save Changes') ?>">
EDIT
Ok mam już prosta sprawa dla osób znających się na JS:
Kod
<input type="submit" class="button-primary" name="submit" onclick="placeOrder(this.form);" value="<?php _e('Save Changes') ?>">
zamienic na
Kod
<input type="submit" class="button-primary" name="submit" onclick="return placeOrder(this.form);" value="<?php _e('Save Changes') ?>">