我将 ajax 表单数据从 jquery 对话框模式发送到我的 CodeIgniter 控制器,该控制器执行其表单验证。使用 FireFox 时一切正常。使用 IE10 时,表单似乎没有提交给控制器。我发现建议在我的 jquery .ajax 中添加“contentType: 'application/json; charset=utf-8' - 这似乎允许 IE10 开始提交表单,但是 CI 表单验证似乎不再适用于任何一个浏览器。将 contentType 重新标记出来(如下所示)允许 FireFox 再次工作。
有什么建议么?
这是我的javascript:
var dataObj = {type_id: tt_tid, rtype_id: tt_rtid, ref_id: tt_rid, time: tt_time, date: tt_date };
$.ajax({
data: dataObj,
cache:false,
//contentType: "application/json; charset=utf-8",
dataType: "json",
type: "POST",
url: '<?php echo base_url();?>task/tt_ajax_add',
success: function(data) {
//Clear the message
$("#modal_message").html('').removeClass().css({'display' : 'none'});
if (data.success == true) {
$("#modal_message").html(data.message).css({'display' : 'block'});
clearForm('#m_timetrack_form');
}else{
$("#modal_message").html(data.message).addClass('error').css({'display' : 'block'});
}
}
});
这是我的 CI 控制器方法
function tt_ajax_add()
{
if ($this->input->is_ajax_request()){
$this->load->library('form_validation');
$validate_config = "timetrack_add";
//Check if the form is valid
if ($this->form_validation->run($validate_config) == FALSE ){
$result['success'] = FALSE;
$result['message'] = "Please correct any errors below.";
$result['message'] .= validation_errors();
//$result['message'] .= file_get_contents('php://input');
#Form data was valid
}else{
$result['success'] = TRUE;
$result['message'] = "Submitted successfully.";
}
exit(json_encode($result));
}
exit();
}