【问题标题】:javascript remote rule not workingjavascript远程规则不起作用
【发布时间】:2014-04-23 14:42:19
【问题描述】:

您好,我正在做一个验证表格。我使用 codeigniter,所以我当然会使用 php 进行第一次验证。

我也有一个 .js 文件来验证表单。问题是进行了一些更改,现在文件不再正常工作。

当某个字段通过验证时,该字段旁边会出现一个绿色图标。如果没有,则输入框显示为红色。

一个不工作的字段是documentn。我做了一个函数来检查文档是否已经在数据库中。它过去有效,现在我无法弄清楚为什么无效。

这是文件中的一个 sn-p:

form2.validate({
            errorElement: 'span', //default input error message container
            errorClass: 'help-inline', // default input error message class
            focusInvalid: false, // do not focus the last invalid input
            ignore: "",
            onfocusout: function (element) {
                $(element).valid();
            },               
            rules: {
                documentn: {
                    required: true,
                    minlength: 7,
                    maxlength: 20,
                    digits: true,
                    remote: {
                        url: '/checkDocNumber',
                        type: 'POST',
                        data: {
                            documentn: function(){
                                var dn = $('#documentn').val();
                                $("#documentn").removeData("previousValue");
                                return dn;
                            }  

                        } 
                    } 
                },

这是我的 admin.php 中的 sn-p:

public function updateFrontUser(){
    $result = array();
    $this->load->helper(array('form', 'url'));
    $this->load->library('form_validation');
    $this->load->database();

    $this->form_validation->set_rules('documentn', 'Nro de Documento', 'required|min_length[7]|max_length[20]|is_natural');

这是检查文档是否已存在于数据库中的函数:

public function checkDocNumber(){
    if (isset($_POST['documentn'])){            
        $dn = UserManager::getInstance()->getByDocument($_POST['documentn']);
        if ($dn){
            echo "true";
        }else{              
            echo "false";
        }
    }  
}

如何检查远程规则中的数据是否正在传递给我的 checkDocNumber 函数?

编辑

当我进行浏览器检查时,没有出现错误!

【问题讨论】:

  • 这非常接近一个好问题,你只需要添加一条信息:当你收到关于Cannot read property 'call' of undefined的错误时,点击它旁边的向下箭头,然后查看调用堆栈。这应该告诉您在生成错误时实际调用了哪些库/函数。
  • @Ryley 嘿,现在我在检查时没有显示任何错误。我修复了一个错误,但字段文档仍然无法正常工作……这很奇怪,因为现在没有出现 js 错误。我将从我的帖子中编辑该部分。

标签: javascript php jquery codeigniter validation


【解决方案1】:

问题已解决。刚刚将 url 从 checkDocNumber 更改为 /admin/checkDocNumber

仍然无法理解为什么它之前的 url 只是 checkDocNumber。

documentn: {
     required: true,
     minlength: 7,
     maxlength: 20,
     digits: true,
     remote: {
         url: '/admin/checkDocNumber',
         type: 'POST',
         data: {
             documentn: function(){
                var dn = $('#documentn').val();
                $("#documentn").removeData("previousValue");
                return dn;
             }  
         } 
  } 
},

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多