jquery - 如何使用 jQuery 和 Codeigniter 简化表单验证?
问题描述
我想使用 jQuery 和 Codeigniter 创建一个验证表单。这段代码实际上运行良好。但我想要的是让这段代码更短更简单。
<?php if (validation_errors()==true) {?>
<script type="text/javascript">
<?php if (form_error('nama')) { ?>
$('#nama').addClass('isInValid');
$('#nama').on('keyup',function(){
$('#nama').removeClass('isInValid');
});
<?php } ?>
<?php if (form_error('email')) { ?>
$('#email').addClass('isInValid');
$('#email').on('keyup',function(){
$('#email').removeClass('isInValid');
});
<?php } ?>
<?php if (form_error('message')) { ?>
$('#message').addClass('isInValid');
$('#message').on('keyup',function(){
$('#message').removeClass('isInValid');
});
<?php } ?>
</script>
<?php } ?>
这是我的控制器代码:
$this->form_validation->set_rules('nama','Name','htmlspecialchars|trim|required|min_length[5]|max_length[30]');
$this->form_validation->set_rules('email','Email','htmlspecialchars|trim|required|min_length[5]|max_length[30]|valid_email');
$this->form_validation->set_rules('message','Message','htmlspecialchars|trim|required|min_length[5]|max_length[400]');
if ($this->form_validation->run()===true) {
$nama =$this->security->xss_clean($this->input->post('nama'));
$email = $this->security->xss_clean($this->input->post('email'));
$message = $this->security->xss_clean($this->input->post('message'));
$this->Contact_m->sendMessage($nama,$email,$message);
$this->session->set_flashdata('success','Thanks for contact us'.$nama);
redirect('Halaman/contact');
}
解决方案
对于 jQuery,您可以在 js 函数中添加 removeClass、addClass 和 keyup 事件,并在需要时简单地对该函数进行分类,而不是重复代码
<?php if (validation_errors()==true) {?>
<script type="text/javascript">
function errorClass(id) {
$(id).addClass('isInValid');
$(id).on('keyup',function(){
$(id).removeClass('isInValid');
});
}
<?php if (form_error('nama')) { ?>
errorClass('#nama');
<?php } ?>
<?php if (form_error('email')) { ?>
errorClass('#email');
<?php } ?>
<?php if (form_error('message')) { ?>
errorClass('#message');
<?php } ?>
</script>
<?php } ?>
推荐阅读
- python - opencv人脸检测上的矩形不起作用
- google-analytics - 如何在 BigQuery 中查询直接回访者
- php - 如何获取具有唯一约束的错误消息
- macos - 确定 macOS 上的当前用户临时目录
- php - 如何使用 PHP 将数组插入 SQL Server 数据库
- vba - MSXML2.ServerXMLHTTP 客户端证书
- jquery - 如何从选择下拉列表中选择多个值并根据选择它们的顺序对它们进行排名?
- windows-10-iot-core - Windows 10 物联网 (ARM) - RNDIS/以太网小工具
- c# - 计算两个日期之间的日期
- c++builder - 如何自动将函数声明放在头文件中?