За последние 24 часа нас посетили 18765 программистов и 1656 роботов. Сейчас ищут 1683 программиста ...

чекбоксы...

Тема в разделе "JavaScript и AJAX", создана пользователем san4ez, 28 янв 2017.

  1. san4ez

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

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    я вот только не пойму.. а смысл ajax если все равно происходит перезагрузка страницы...
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Браузер уходит на другую страницу, потому что она указана в экн формы, т.е. то место, куда отсылать данные формы при сабмите. А форма отправляется потому что ты её сабмитишь, нажимая на кнопку.

    тут два пути:
    1. не сабмитить форму. А именно: в форме писать <form on submit="return false", и никаких экшенов не надо; вместо <input type=submit> фигарить обычный баттон или любой другой элемент, в котором onclick="mysubmit($('#myform')" (эвент не нужен вообще для этого)
    2. просто дописать return false в onsubmit обработчик, которого у тебя нет.

    А у тебя сейчас чушь какая-то написана. Ты вешаешься на форму по событию не скажу какому и там вешаешься на клик на сабмит кнопку... Это макароны какие-то. Перепиши просто: в форме onsubmit="mysubmit(this); return false;", а в mysubmit() уже делай аякс, или вообще как я написал в п.1, т.е. просто onsubmit="return false" всегда, а у кнопки уже onlcick.

    Я настоятельно рекомендую делать onclick обработчик там, где по клику что-то происходит. В противном случае потом придётся чесать репу и думать, как так что по клику обработчика нет, но действие вызывается.
     
    san4ez нравится это.
  3. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Можно input type="submit" заменить на input type="button", а теги form вообще убрать)) и будет работать без лишних return false
     
  4. san4ez

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

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    вот без чекбоксов у меня так и было сделано, допустим при авторизации пользователя, а тут я не мог получить всех данных без формы
     
  5. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Код (Javascript):
    1. var ch = $('#chck').prop('checked'); // возвращает true или false
     
    san4ez нравится это.
  6. san4ez

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

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    Сделал так, форма:
    HTML:
    1. <p><input type="text" id="nname"></p>
    2.     <p><input type="text" id="comment"></p>
    3.     <p><input type="checkbox" id="ondate"> Включить дату</p>
    4.     <p><input type="date" id="date"></p>
    5.     <p><input type="checkbox" id="ontime"> Включить время</p>
    6.     <p><input type="time" id="time"></p>
    7.     <p><input type="button" id="button" value="Добавить"></p>
    js:
    Код (Javascript):
    1. function funcSuccess (data) {
    2.     $('#info').text (data);
    3. }
    4.  
    5.  
    6. $(document).ready (function () {
    7.     $('#button').bind('click', function () {
    8.         var chdate = $('#ondate').prop('checked');
    9.         var chtime = $('#ontime').prop('checked');
    10.         $.ajax ({
    11.             url: 'processnote.php',
    12.             type: 'POST',
    13.             data: ({nname: $('#nname').val(), comment: $('#comment').val(), ondate: chdate, date: $('#date').val(), ontime: chtime, time: $('#time').val()}),
    14.             dataType: 'html',
    15.             success: funcSuccess
    16.         });
    17.     });
    18. });
    все работает, как мне надо =) Спасибо всем.
    если есть еще недочеты, напишите
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    крутяк!
     
    san4ez нравится это.