在codeigniter中使用 AJAX 和jquery验证字段时,input-group-addon中出现错误

13z8s7eq  于 2022-12-07  发布在  jQuery
关注(0)|答案(2)|浏览(102)

"现在已经过了46天了,直到我被困在这里,或者有别的办法“
我知道这很简单,但是我怎样才能把input-group Package 在form-group下面呢?我正在codeigniter中使用 AJAX 提交表单数据,并显示验证错误。问题是当Jquery Validate添加错误控制时,input-group-addon Package 到表单字段下面的下一行。

控制器

function infoValidation() {
        $result = array('status' => false, 'message' => array());

        $this->form_validation->set_error_delimiters('<div class="text-danger">','</div>');
        if ($this->form_validation->run('company_registration')) {

                $result['status'] = true;

        }else {

            foreach ($_POST as $key => $value) {

                $result['message'][$key] = form_error($key);
            }
        }

        echo json_encode($result);
    }

检视

<div class="col-lg-6">
<div class="form-group">
    <div class="input-group">
        <span class="input-group-addon">*</span>
        <input type = "text" name="creditCardNumber" class="form-control input-md" id="creditCardNumber" placeholder="Mobile No">
    </div>
</div>

" AJAX "
我也尝试附加元素,但没有任何结果

$.ajax({
        url : me.attr('action'),
        dataType : 'json',
        type : 'POST',
        data : me.serialize(),
        success: function(resp) {
            console.log(resp);
            if (resp.status == true) {
                $('#myModal').modal('show');

                $(".form-group").removeClass('has-error').removeClass('has-success');
                $(".text-danger").remove();
            }else {
                $('#msg').html('<div class="well"><h5>Please Check Your Details</h5></div>');
                $.each(resp.message, function(key, value) {

                    var element = $("#"+key);
                        element.closest('div.form-group, div.input-group')
                               .addClass(value.length > 0 ? 'has-error' : 'has-success')
                               .find('.text-danger').remove();

                        element.after(value);
                });
            }
        }
    });
icnyk63a

icnyk63a1#

我认为您需要覆盖jQuery validate插件方法,以便与引导程序兼容。

Refer http://jsfiddle.net/mapb_1990/hTPY7/7/

示例代码

$('form').validate({
    rules: {
        firstname: {
            minlength: 3,
            maxlength: 15,
            required: true
        },
        lastname: {
            minlength: 3,
            maxlength: 15,
            required: true
        }
    },
    highlight: function(element) {
        $(element).closest('.form-group').addClass('has-error');
    },
    unhighlight: function(element) {
        $(element).closest('.form-group').removeClass('has-error');
    },
    errorElement: 'span',
    errorClass: 'help-block',
    errorPlacement: function(error, element) {
        if(element.parent('.input-group').length) {
            error.insertAfter(element.parent());
        } else {
            error.insertAfter(element);
        }
    }
});
bpsygsoo

bpsygsoo2#

只需在所需位置添加错误标签:
我的天啊

<div class="col-lg-6">
 <div class="form-group">
   <div class="input-group">
    <span class="input-group-addon">*</span>
    <input type = "text" name="creditCardNumber" class="form-control input-md" id="creditCardNumber" placeholder="Mobile No">
  </div>
 <label for="creditCardNumber" generated="true" class="error"></label>
</div>

相关问题