0

jqueryダイアログモーダルから、フォーム検証を実行するCodeIgniterコントローラーにフォームデータをajax投稿しています。FireFox を使用すると、すべて正常に動作します。IE10 を使用している場合、フォームがコントローラーに送信されないようです。「contentType: 'application/json; charset=utf-8' を jquery .ajax に追加するようにという提案を見つけました。これにより、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();
}
4

0 に答える 0