JS 기능을 사용하여 일부 양식 필드의 유효성을 검사하려고하지만 제출 단추를 클릭 할 때 필드를로드하거나 확인하지 않는 것 같습니다.JS 양식 유효성 검사가 작동하지 않습니다.
<html>
<body>
<?php require_once('logic.php'); ?>
<h1>Add new Region/Entity</h1>
<?php
if ($_POST['submitted']==1) {
echo $error;
}
?>
<form action="logic.php" method="post" name="registration" onSubmit="return formValidation();">
Region: <input type="text" name="region" value="<?php echo @$_POST['region']; ?>"><br>
Description: <br><textarea name="description" cols="50" rows="10"><?php echo @$_POST['description']; ?></textarea><br>
Remarks: <input type="text" name="remarks" value="<?php echo @$_POST['remarks']; ?>">
<input type="hidden" name="submitted" value="1"><br>
<input type="submit" value="Submit" onclick="">
그리고 여기에는 JS입니다 :
<script type="text/javascript">
function formValidation() {
var region = document.registration.region;
var descr = document.registration.description;
var remarks = document.registration.remarks;
if(empty_validation()) {
if(reg_validation()) {
if(reg_letters()) {
if (desc_letters()) {
if (desc_validation()) {
}
}
}
}
}
return false;
}
function empty_validation() {
var reg_len = region.value.length;
var descr_len = descr.value.length;
var rem_len = remarks.value.length;
if (reg_len == 0 || decr_len == 0 || rem_len == 0) {
alert("Please fill all the fields");
return false;
}
return true;
}
function reg_validation() {
if (reg_len > 50) {
alert("Only 50 characters are allowed in the Region field");
region.focus();
return false;
}
return true;
}
function reg_letters() {
var letters = /^[A-Za-z]+$/;
if(region.value.match(letters)) {
return true;
} else {
alert('Region field must have only alphabetical characters');
region.focus();
return false;
}
}
function desc_validation() {
if (descr_len > 500) {
alert("Only 500 characters are allowed in the description field");
descr.focus();
return false;
}
return true;
}
function desc_letters() {
var iChars = "[email protected]#$%^&*()+=-[]\\\';,./{}|\":<>?";
for (var i = 0; i < descr_len; i++) {
if (iChars.indexOf(descr.value.charAt(i)) != -1) {
alert ("Your description has special characters. \nThese are not allowed.\n Please remove them and try again.");
return false;
}
}
return true;
}
</script>
</form>
</body>
</html>
당신이 볼 수 있듯이, 나는 PHP 파일 형식의 값을 게시하도록하겠습니다. 그리고 폼 태그에 onSubmit
이벤트를 사용하여 formValidation()
함수를 초기화했습니다. 어떤 이유로 작동하지 않습니다.
여기에 a working example이 필요합니다.
가 디버깅을 시도 해 봤나? 유효성 검사에 오류가 있습니다 - "지역이 정의되지 않았습니다":'var reg_len = region.value.length; ' – Ian
작동하지 않습니다! 도움이되지 않습니다. 예상되는 것은 무엇입니까? 무슨 일 이니? –
하나의 함수에서 Javascript 변수를 선언 한 다음 모든 함수에서 Javascript 변수를 사용할 수 있다고 기대할 수는 없습니다. 그것들을 사용하기 위해서는 모든 함수에서 선언해야합니다. – Ian