За последние 24 часа нас посетил 22481 программист и 1142 робота. Сейчас ищут 575 программистов ...

10 строк из jQuery в нативный js

Тема в разделе "JavaScript и AJAX", создана пользователем mainprofilemail, 22 мар 2020.

  1. mainprofilemail

    mainprofilemail Активный пользователь

    С нами с:
    14 апр 2018
    Сообщения:
    101
    Симпатии:
    2
    Это единственное место в коде где я не могу обойтись без jQuery потому что не знаю как написать на нативном js (чтобы работало везде).

    Помогите перевести. С меня царский лайк и спасибо

    Код (Javascript):
    1. $(document).ready(function() {
    2.     $('form').submit(function(event) {
    3.  
    4.         event.preventDefault();
    5.  
    6.         $.ajax({
    7.             type: 'POST',
    8.             url: 'post.php',
    9.             data: new FormData(this),
    10.             contentType: false,
    11.             cache: false,
    12.             processData: false,
    13.             success: function(result){
    14.                 if(result === 'refresh' || result == 200){window.location.href = '/account'}else{$('.result').text(result)}
    15.             }
    16.         });
    17.     });
    18. });
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    На нативном будет далеко не 10 строк
     
  3. mainprofilemail

    mainprofilemail Активный пользователь

    С нами с:
    14 апр 2018
    Сообщения:
    101
    Симпатии:
    2
    Если честно то мне особо без разницы, подходит и 50 строк, просто я не хочу перегружать сайт от jQuery, он то мне покачто и помогает в этом месте. Все остальное нативным. Вот и хочу от него вообще избавится чтобы глаза не мылил
     
  4. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Код (Javascript):
    1. function formAjax(url, form, success) {
    2.     var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
    3.     xhr.open('POST', url);
    4.     xhr.onreadystatechange = function() {
    5.         if (xhr.readyState>3 && xhr.status==200) { success(xhr.responseText); }
    6.         if (xhr.status==500) { console.log(xhr.responseText); }
    7.     };
    8.     xhr.send(form);
    9.     return xhr;
    10. }
    11.  
    12. document.addEventListener('DOMContentLoaded',function(){
    13.     var form = document.querySelector("form"),
    14.         res = document.querySelector(".result");
    15.  
    16.     form.addEventListener('submit', function (event) {
    17.          event.preventDefault();
    18.  
    19.          formAjax('post.php', new FormData(this), function(result){
    20.                 if(result ==='refresh'){
    21.                         window.location.href='/account';
    22.                  }else{
    23.                        res.innerHTML =  result;
    24.                 }
    25.          });
    26.    });
    27. })
     
    #4 Artur_hopf, 22 мар 2020
    Последнее редактирование: 22 мар 2020
    mainprofilemail, Sail и TeslaFeo нравится это.
  5. mainprofilemail

    mainprofilemail Активный пользователь

    С нами с:
    14 апр 2018
    Сообщения:
    101
    Симпатии:
    2
    Спасибо за код) Будет ли он корректно работать на всех устройствах и браузерах?
     
  6. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
  7. mainprofilemail

    mainprofilemail Активный пользователь

    С нами с:
    14 апр 2018
    Сообщения:
    101
    Симпатии:
    2
    Шутка зашла)