JavaScript как заполнить поле

Discussion in 'PHP' started by triblekill, 1 Mar 2017.

  1. triblekill

    triblekill Member

    Joined:
    21 Aug 2011
    Messages:
    351
    Likes Received:
    94
    Reputations:
    1
    Как заполнить поле на jquery
    Я делаю:
    Code:
    document.getElementsByClassName("form-input")[0].value="500";
    
    Визуально форма заполняется, но при нажатии на кнопку пишет что вы не ввели код
     
  2. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    Нет тот раздел.
    Попробуй тригернуть евент изменения поля, может там какой-то флаг на изменения есть(посмотри в инспекторе, чтобы наверняка):
    Code:
    document.getElementsByClassName("form-input")[0].dispatchEvent( new Event('change'/* еще возможно 'keydown' или 'keyup' */) );
    
     
  3. bologer

    bologer Member

    Joined:
    25 Nov 2016
    Messages:
    62
    Likes Received:
    18
    Reputations:
    3
    Попробуй так:

    Code:
    <script>
    var el = document.getElementsByClassName("form-input")[0];
    
    el.click();
    el.focus();
    el.value = '500';
    el.click();
    </script> 
     
  4. triblekill

    triblekill Member

    Joined:
    21 Aug 2011
    Messages:
    351
    Likes Received:
    94
    Reputations:
    1
    Всё таки по прежнему не хочет почему то (
     
  5. bologer

    bologer Member

    Joined:
    25 Nov 2016
    Messages:
    62
    Likes Received:
    18
    Reputations:
    3
    Если это для вас не секретно, то можете скинуть ссылку. Я попробую напрямую там и сюда скину решение.
    Так же скиньте часть скрипта, которые уже работает.
     
  6. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    140
    Reputations:
    4
    если подходит jquery то
    http://api.jquery.com/val/
    должно сработать как то так. помести это на странице. если не работает посмотри консоль нет ли фатальных ошибок которые ложат жсю
    $(function(){
    $(".form-input").eq(0).val(500);
    });
     
  7. triblekill

    triblekill Member

    Joined:
    21 Aug 2011
    Messages:
    351
    Likes Received:
    94
    Reputations:
    1
    Вообще ничего не проиходит в консоле undefined
     
  8. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    140
    Reputations:
    4
    undefined и все ? значит есть где то что то типа console.info или console.log с переменной которая не объявлена. это может быть причиной ошибки которая валит все последующие скрипты. или там не просто undefinded . ( не одно слово ).
     
  9. cipher

    cipher New Member

    Joined:
    11 Jun 2017
    Messages:
    2
    Likes Received:
    1
    Reputations:
    0
    Code:
    (function($) {
        /**
         * button - кнопка на которую нажимаете
         * после нажатии в HTML элемент input с классам .form-input
         * будет вставлено значение 500
          */
        $('button').on('click', function(e) {
           e.preventDefault();
    
           var $field = $('.form-input');
    
           $field.val(500);
    
        });
    }(jQuery));
    ПС. как вы собираете данные с формы? Пробуйте так и проблем не должно быть:

    Code:
    (function($) {
        /**
         * button - кнопка на которую нажимаете
         * после нажати в HTML элемент input с классам .form-input
         * будет вставлено значение 500
          */
        $('button').on('click', function(e) {
           e.preventDefault();
    
           var $field = $('.form-input');
    
           $field.val(500);
    
        });
    
    
        $(document).on('submit', 'form button[type="submit"]', function(){
    
            var $data = $('form').serialize();
    
            console.log($data);  // input(name)=500
    
        });
    
    }(jQuery));
    Писал на коленке, но так уж точно должно работать и для динамических созданных элементов
     
    #9 cipher, 11 Jun 2017
    Last edited: 11 Jun 2017
    triblekill likes this.