首页 > 解决方案 > jQuery Ajax 验证不返回错误

问题描述

我目前在做请假申请系统。如果 api 返回 false,我有我想验证的下拉字段,用户无法提交应用程序。

在此处输入图像描述

例如,如果年假不可用(getLeaveAvailability return false)应该返回错误消息。

形式:

 <div class="form-group">
                                        <label class="control-label col-md-3">Leave Type</label>
                                        <div class="col-md-9">

                                            <select type="text" id="leave_type" name="leave_type" required="required" class="leave_type form-control col-md-7 col-xs-12">
                                                <option value="">Select Leave Type</option>


                                                <option value="1">Annual Leave</option>
                                                <option value="2">Medical Leave</option>

                                            </select>

                                        </div>
                                    </div>

Jquery Ajax 验证:

var validator = form.validate({
      debug: true,
      rules: {
        leave_type: {
          required: true,
          remote: {
            url: base_url + "/getLeaveAvailability",
            type: 'post',
            dataType: 'json',
            data: {
              leave_id: function() {
                return $('[name="leave_type"]').val();
              }
            }
          },
          // leave_type: true
        },
      },
      messages: {
        leave_type: {
          remote: "Leave not available!"
        }
      },

API 响应:

 public function getLeaveAvailability(Request $request){

        return 'false';
    }

标签: jqueryajaxjquery-validate

解决方案


我认为您可能会通过以下代码获得帮助,

leave_type: {
      required: true,
      remote: {
        url: base_url + "/getLeaveAvailability",
        type: 'post',
        dataType: 'json',
        data: {
          leave_id: function() {
            return $('[name="leave_type"]').val();
          }
        },
        success: function(response) {
            if (response.responseText == "true") { //here you have to check the return response from server side
                //Write statement if success

            } else {  
                //Write statement if failed
            }
        }
    }
}

推荐阅读