Javascript 表单验证在使用java脚本的codeigniter中不起作用
我正在使用java脚本开发Codeigniter和验证表单 我的视图文件是Javascript 表单验证在使用java脚本的codeigniter中不起作用,javascript,codeigniter,Javascript,Codeigniter,我正在使用java脚本开发Codeigniter和验证表单 我的视图文件是 <div class="container"> <div class="limiter"> <div class="container-login100"> <div class="wrap-login100 p-l-55 p-r-55 p-t-65 p-b-50" > <form cla
<div class="container">
<div class="limiter">
<div class="container-login100">
<div class="wrap-login100 p-l-55 p-r-55 p-t-65 p-b-50" >
<form class="login100-form" action="<?php echo base_url('index.php/Customer/addCustomer') ?>" method="post">
<h2 class="login100-form-title p-b-33"> Add Admin </h2>
<div class="form-group ">
<label class="control-label col-md-2 col-sm-6 col-xs-12" >First Name:</label>
<input class="input100" type="text" id="first_name" placeholder="Enter first_name" name="first_name"/>
<span id="errorfirstname"></span>
</div>
<div class="container-login100-form-btn m-t-20">
<input type="submit" class="btn btn-dark login100-form-btn" id="save" name="save" value="Save" onclick="validation()"/>
</div>
</form>
</div>
</div>
</div>
</div>
java脚本代码是
function validation() {
if (document.getElementById("first_name").value == "") {
var str = ("First Name may not be blank");
document.getElementById("errorfirstname").innerHTML = str;
} else if (document.getElementById("first_name") != /^[a-zA-Z ]*$/) {
var str = ("Please Enter Only Characters in First name");
} else if (document.getElementById("first_name")) {
var inpObj = document.getElementById("first_name");
if (inpObj.value.length <= 30 && inpObj.value.length >= 3) {
var str = ("Please Type Minmum 3 Characters Maximum 30 Characters ");
document.getElementById("errorfirstname").innerHTML = str;
}
} else {
var str = "Input is Not valid";
document.getElementById("errorfirstname").innerHTML = str;
}
}
我的实际问题是,当我提交表单时,它在验证后将在javascript上运行,它不返回错误,但它将在控制器文件上运行。如果验证失败,请在查看页面上返回,而不是在控制器上运行。如果验证未通过,则必须在验证时返回false。onclick中还缺少一个return语句。它应该像onclick=returnvalidation那样调用验证
有关详细信息,请参阅此处:
不过,我建议您使用现成的解决方案,如或。它们经过了尝试和测试,涵盖了我们容易忘记的大多数关键案例,得到了数百名其他开发人员的批准,并节省了开发时间。请在表单标签中添加表单id作为“表单id”。并使用下面的解决方案
document.querySelector("#form-id").addEventListener('submit', (e) => {
//prevent actual submit
e.preventDefault();
//Get form values
const first_name = document.querySelector("#first_name").value;
const errorfirstname = document.querySelector("#errorfirstname");
const letters = /^[a-zA-Z ]*$/;
if (first_name === "") {
errorfirstname.className = "alert alert-danger";
errorfirstname.innerHTML = "First Name may not be blank";
} else if (!first_name.match(letters)) {
errorfirstname.className = "alert alert-danger";
errorfirstname.innerHTML = "Please Enter Only Characters in First name";
} else if (first_name.length < 3 || first_name.length > 30) {
errorfirstname.className = "alert alert-danger";
errorfirstname.innerHTML = "Please Type Minmum 3 Characters Maximum 30 Characters";
} else {
e.submit();
}
});
如果出现错误,则需要添加return false以阻止默认表单操作,即提交表单。
document.querySelector("#form-id").addEventListener('submit', (e) => {
//prevent actual submit
e.preventDefault();
//Get form values
const first_name = document.querySelector("#first_name").value;
const errorfirstname = document.querySelector("#errorfirstname");
const letters = /^[a-zA-Z ]*$/;
if (first_name === "") {
errorfirstname.className = "alert alert-danger";
errorfirstname.innerHTML = "First Name may not be blank";
} else if (!first_name.match(letters)) {
errorfirstname.className = "alert alert-danger";
errorfirstname.innerHTML = "Please Enter Only Characters in First name";
} else if (first_name.length < 3 || first_name.length > 30) {
errorfirstname.className = "alert alert-danger";
errorfirstname.innerHTML = "Please Type Minmum 3 Characters Maximum 30 Characters";
} else {
e.submit();
}
});