2017-02-06 2 views
1

Моя проблема заключается в следующем, я создал текст ввода и кнопку так же, как на этой картинке: enter image description hereJQuery/Ajax код не работает на Firefox, но в другом браузере работает

Система очень проста, вы вводите число, и вы нажимаете go, чтобы установить в базу данных это значение с помощью ajax. Я пробовал этот код с Chrome, Internet Explorer 9 и Edge и Firefox (51.0.1 (32-бит)), но кажется, что в firefox код не работает. Какая проблема? Вот Javascript код:

<script type="text/javascript"> 
         $(document).ready(function() { 

          $("#set_image_pos_btn<?php echo $image->id; ?>").click(function() { 
           event.preventDefault(); 

           var image_id = <?php echo $image->id; ?>; 
           var image_position = $("#image_position_value<?php echo $image->id; ?>").val(); 

           $.ajax({ 
            url: '<?php echo base_url("image/pozitie"); ?>', 
            data: {id: image_id, position: image_position}, 
            type: 'POST', 
            success: function (data) { 
             $("#image_position_value<?php echo $image->id; ?>").html(data); 
            } 
           }); 

          }); 

         }); 
        </script> 

А вот код PHP:

function pozitie() { 
    $id = $this->input->post('id'); 
    $position = $this->input->post('position'); 

    if(isset($id)) { 

     $update = $this->image_model->_update($id, array('position' => $position)); 

     if($update) { 
      $image = $this->image_model->get_where_row('id', $id); 
      echo $image->position; 
     } else { 
      echo "eroare"; 
     } 


    } 
} 
+2

Проверьте консоль Firefox на предмет ошибок. Может быть проблемой безопасности. – jhmckimm

+3

Firefox не предоставляет 'event' как глобальную переменную. Он передается как аргумент функции обработчика событий. При использовании jQuery вы не должны использовать глобальное 'событие' в любом случае (если у вас действительно нет веских причин). – Pointy

+0

ReferenceError: событие не определено \t \t m.event.dispatch \t m.event.add/r.handle – xttrust

ответ

2

добавить параметр е в случае щелчка, то он будет работать.

click(function (e) { 

Также: вы должны заботиться об обработке ошибок.

var jqxhr = $.ajax("example.php") 
.done(function() { 
    alert("success"); 
}) 
.fail(function() { 
    alert("error"); 
}) 
.always(function() { 
    alert("complete"); 
}); 
+0

попробовать console.log в Firefox, чтобы увидеть, если событие щелчка срабатывает. Также в зависимости от используемой версии jQuery вы можете попробовать использовать .on ('click', function (e) {...}); Я думаю, что это работает с jQuery 2, но я не уверен. Попробуйте, если событие click не запускается в Firefox. –

Смежные вопросы