Tilføj checkboxs test
Jeg har følgende js validering:function javascript_validation() {
$js = '';
if (is_array($this->modules)) {
$js = '<script language="javascript"><!-- ' . "\n" .
'function check_form() {' . "\n" .
' var error = 0;' . "\n" .
' var error_message = "' . JS_ERROR . '";' . "\n" .
' var payment_value = null;' . "\n" .
' if (document.checkout_payment.payment.length) {' . "\n" .
' for (var i=0; i<document.checkout_payment.payment.length; i++) {' . "\n" .
' if (document.checkout_payment.payment[i].checked) {' . "\n" .
' payment_value = document.checkout_payment.payment[i].value;' . "\n" .
' }' . "\n" .
' }' . "\n" .
' } else if (document.checkout_payment.payment.checked) {' . "\n" .
' payment_value = document.checkout_payment.payment.value;' . "\n" .
' } else if (document.checkout_payment.payment.value) {' . "\n" .
' payment_value = document.checkout_payment.payment.value;' . "\n" .
' }' . "\n\n";
reset($this->modules);
while (list(, $value) = each($this->modules)) {
$class = substr($value, 0, strrpos($value, '.'));
if ($GLOBALS[$class]->enabled) {
$js .= $GLOBALS[$class]->javascript_validation();
}
}
$js .= "\n" . ' if (payment_value == null) {' . "\n" .
' error_message = error_message + "' . JS_ERROR_NO_PAYMENT_MODULE_SELECTED . '";' . "\n" .
' error = 1;' . "\n" .
' }' . "\n\n" .
' if (error == 1) {' . "\n" .
' alert(error_message);' . "\n" .
' return false;' . "\n" .
' } else {' . "\n" .
' return true;' . "\n" .
' }' . "\n" .
'}' . "\n" .
'//--></script>' . "\n";
}
return $js;
}
Nu vil jeg gerne tilføje en test om en checkbox er checked.
Hvilket jeg har valgt at gøre således:
function javascript_validation() {
$js = '';
if (is_array($this->modules)) {
$js = '<script language="javascript"><!-- ' . "\n" .
'function check_form() {' . "\n" .
' var error = 0;' . "\n" .
' var error_message = "' . JS_ERROR . '";' . "\n" .
' var payment_value = null;' . "\n" .
' if (document.checkout_payment.payment.length) {' . "\n" .
' for (var i=0; i<document.checkout_payment.payment.length; i++) {' . "\n" .
' if (document.checkout_payment.payment[i].checked) {' . "\n" .
' payment_value = document.checkout_payment.payment[i].value;' . "\n" .
' }' . "\n" .
' }' . "\n" .
' } else if (document.checkout_payment.payment.checked) {' . "\n" .
' payment_value = document.checkout_payment.payment.value;' . "\n" .
' } else if (document.checkout_payment.payment.value) {' . "\n" .
' payment_value = document.checkout_payment.payment.value;' . "\n" .
' }' . "\n";
reset($this->modules);
while (list(, $value) = each($this->modules)) {
$class = substr($value, 0, strrpos($value, '.'));
if ($GLOBALS[$class]->enabled) {
$js .= $GLOBALS[$class]->javascript_validation();
}
}
$js .= "\n" . ' function check_checkbox(field_name, field_must, message) {' . "\n" .
' if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {' . "\n" .
' var field_value = form.elements[field_name].checked;' . "\n" .
' error_message = error_message + "* " + field_value + "\n";' . "\n" .
' if (field_value != field_must) {' . "\n" .
' error_message = error_message + "* " + message + "\n";' . "\n" .
' error = true;' . "\n" .
' }' . "\n" .
' }' . "\n" .
' }' . "\n" .
"\n" . ' check_checkbox("conditions", true, "' . JS_ERROR_CONDITIONS_NOT_ACCEPTED . '" )' . "\n" .
"\n" . ' if (payment_value == null) {' . "\n" .
' error_message = error_message + "' . JS_ERROR_NO_PAYMENT_MODULE_SELECTED . '";' . "\n" .
' error = 1;' . "\n" .
' }' . "\n\n" .
' if (error == 1) {' . "\n" .
' alert(error_message);' . "\n" .
' return false;' . "\n" .
' } else {' . "\n" .
' return true;' . "\n" .
' }' . "\n" .
'}' . "\n" .
'//--></script>' . "\n";
}
return $js;
}
Men nu kommer det funker ikke helt. Noget helt galt med mit js?
Hilsen Thomas
