在重新加载时仍显示form_validation

时间:2019-01-23 18:19:04

标签: php codeigniter validation

我有一个表单,我在提交表单时使用form_validation检查错误,显示输入的错误和set_value,但是如果使用ctrl + r重新加载页面,则错误和set_value仍然显示。

任何人都知道如何重新将表单重新清空

控制器:

public function ajoutAffairePI(){

        $this->form_validation->set_rules('nomPrenomAD','Nom Prenom','required|min_length[5]',array(
            'required' => "Le champ %s est obligatoire.",
            'min_length' => "Le champ %s doit comporter au moins 5 caractères."
        ));

        $this->form_validation->set_rules('matriculePA','Matricule','required|min_length[8]|max_length[8]|numeric',array(
            'required' => "Le champ %s est obligatoire.",
            'min_length' => "Le champ %s doit comporter au moins 8 caractères.",
            'max_length' => "Le champ %s ne peut pas dépasser 8 caractères.",
            'numeric'=> "Le champ %s ne doit contenir que des chiffres."
        ));
        $this->form_validation->set_rules('nomPrenomPA','Nom Prenom','required|min_length[5]');

        $this->form_validation->set_rules('numeroAffaire',"Numéro d'affaire",'required|numeric|min_length[5]|callback_numeroAffaire_check["AFFAIRE_PREMIERE_INSTANCE"]');


        if($this->form_validation->run() === FALSE){
            $this->load->view('templates/header');
            $this->load->view('templates/ajouter');
            $this->load->view('templates/footer');
        }
        else{
            $this->affaires_model->set_affaire_pi();
            redirect('affaire/home');
        }
    }

视图:

<div class="container">
   <h2>Ajouter une affaire</h2>
<?php echo form_open('',array('class'=>'container-fluid')); ?>
<fieldset>
    <legend>Dossier</legend>
    <div class="form-inline">
        <label class="mb-2 mr-sm-2">Nom de Dossier</label>
        <input type="text" class="form-control mb-2 mr-sm-2" value="<?php echo set_value('nomDeDossier'); ?>"  placeholder="Nom de Dossier" name="nomDeDossier" required>
        <label class="mb-2 mr-sm-2">Numéro de Dossier</label>
        <input type="Number" class="form-control mb-2 mr-sm-2" value="<?php echo set_value('numeroDeDossier'); ?>" placeholder="Numéro de Dossier" name="numeroDeDossier" required>
    </div>
</fieldset>
<fieldset>
    <legend>T.P.I</legend>
        <div class="form-inline">
            <label class="mb-2 mr-sm-2">N° AFF</label>
            <input type="text" class="form-control mb-2 mr-sm-2" value="<?php echo set_value('numeroAffaire'); ?>" placeholder="Numéro d'affaire" name="numeroAffaire">
            <?php echo form_error('numeroAffaire');?>
            <label class="mb-2 mr-sm-2">Date Jugement</label>
            <input type="date" class="form-control mb-2 mr-sm-2" value="<?php echo set_value('dateJugement'); ?>"  placeholder="Date Jugement" name="dateJugement" required>
        </div>
<button type="submit" class="btn btn-primary">Ajouter</button>

2 个答案:

答案 0 :(得分:0)

form.reset()是DOM元素方法(jQuery对象上没有),因此您需要:

$("#client.frm")[0].reset();
//faster version:
$("#client")[0].reset();

或者没有jQuery:

document.getElementById("client").reset();

答案 1 :(得分:0)

这应该适合您的情况:

$(window).on('beforeunload', function(){
    $("form")[0].reset();
});