使用Codeigniter和JqueryUI对话框进行表单验证

时间:2013-07-19 02:08:27

标签: php jquery codeigniter

我想问一下如何使用jquery在对话框中进行表单验证? 例如,如果单击按钮,我将有一个按钮,将调用jquery,并且jquery将从另一个HTML加载我的VIEW。如果用户使用重复的用户名提交,则表单验证必须位于同一对话框中。在我的情况下,如果验证运行,我的页面将转到显示错误消息的表单视图。

这是我的示例代码:

在我的视图中

<input class="classname1"  type="button" value="ADD" name="add_category"/>
...
<div id="popup" style="display: none;"></div>
...
...
$(".hero-unit input[name=add_category]").on('click',function(){
        $('#popup').load("<?php echo site_url("category_controller/addCategoryItem/"); ?>").dialog({
            title: "Add New Category",
            autoOpen: true,
            width: 450,
            modal:true,
        });
    });

在我的控制器中

public function addCategoryItem(){
    $this->form_validation->set_rules('username','Username','required|is_unique[users.username]');
...
...
if($this->form_validation->run() == FALSE){
    $this->load->view('Category/contents/addNewItem');
}else{
    $this->cat_model->insertCat();
    echo "INSERTED";
}
}

在我的表单中查看

echo form_open('category_controller/addCategoryItem');
?>
<input type='text' name='username' value='' />
<?php echo form_error('username'); ?>
<input type='submit' value='ADD' />
<?php
echo form_close();

1 个答案:

答案 0 :(得分:0)

在您的表单中,您应该有一个ajax调用来提交表单。

我使用ajaxForm。您可以在此处下载插件:

http://malsup.com/jquery/form/

并且您需要将整个表单包含在具有id的div中,并使用ajaxForm定位此div。 您的表单也应该有ID。

例如:

<div id="ajaxResult">
<?php
$attr = array('id'=>'myForm');
echo form_open('url', $attr); ?>

Your form

</div>
<script>
$(function()
{
  var options = { target: '#ajaxResult' }; 
  $('#myForm').ajaxForm(options);
});
</script>

这样,如果有错误,它会显示它。