За последние 24 часа нас посетили 30318 программистов и 1753 робота. Сейчас ищет 1051 программист ...

Помогите исправить код

Тема в разделе "PHP для новичков", создана пользователем kordiks1972, 4 июн 2017.

  1. kordiks1972

    kordiks1972 Новичок

    С нами с:
    19 апр 2017
    Сообщения:
    38
    Симпатии:
    1
    Есть тестовая форма:
    Код (Text):
    1. <form action="#" id="myform-1">
    2.  
    3.         <h3>Статус</3>
    4.         <div class="param">
    5.             <input type="text" name="status_vendor[]" placeholder="Вендор" >
    6.             <input type="text" name="status_name[]" placeholder="Название статуса">
    7.             <input type="text" name="status_specialization[]" placeholder="Специализация" >
    8.             <input type="text" name="status_year[]" placeholder="Год" >
    9.         </div>
    10.         <input type="button" value="Добавить статус" id="form_status_added">
    11.  
    12.  
    13.     </form>
    Есть обработчик:
    Код (Text):
    1. $(document).ready(function(){
    2.    
    3.  
    4.         $("#form_status_added").click(function () {
    5.             $("<div class='param'><input type='text' name='status_vendor[]' placeholder='Вендор'> <input type='text' name='status_name[]' placeholder='Название статуса'> <input type='text' name='status_specialization[]' placeholder='Специализация'> <input type='text' name='status_year[]' placeholder='Год'></div>" ).insertBefore("#form_status_added");
    6.         })
    7.        
    8.      });
    Вопрос в следующем, как сделать, что бы обработчик работал только с формой id="myform-1", но не работал ни с какими другими?
     
  2. Алекс8

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

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    во первых лучше использовать не .click а .on - cilick вроде как устаревший метод считается..

    а во вторых не совсем понимаю проблему...
    Вы нажимаете на button #form_status_added и добавляете строку перед #form_status_added
    каким образом данный код может затрагивать другие формы?
     
  3. kordiks1972

    kordiks1972 Новичок

    С нами с:
    19 апр 2017
    Сообщения:
    38
    Симпатии:
    1
    У меня же на на чистом штмл сайт, а на вордпрессе, т.е., там все будет подключено немного по другому чем в примере выше. Я не могу подключить скрипт только для одной страницы, на которой и расположена нужная форма. А форм на сайте будет штук пятьдесят.

    Да, понятно, что кнопки "Добавить статус" в других формах может и не быть, а, кстати, могут и быть. Т.е., хочется все сделать правильно, что бы полгода спустя какие то проблемы не вылезли.
     
  4. Алекс8

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

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    id элемента должен быть уникальный.. придумывайте id так что бы никто не повторил.. к примеру название вашего плагина и имя id
     
  5. kordiks1972

    kordiks1972 Новичок

    С нами с:
    19 апр 2017
    Сообщения:
    38
    Симпатии:
    1
    Да он уникальный))) Как это в обработчике указать?
     
  6. Алекс8

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

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    Код (Javascript):
    1.  $("#form_status_added").click(function () {
    Вы когда тут с помощью JQuery обращаетесь к элементу то обращаетесь через его уникальный ID
     
  7. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    А зачем эти скобки [] в name?
     
  8. Алекс8

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

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    это массив... если будут одинаковые name то они не перезапишутся а станут элементами массива.. если эти name уникальны то скобки не нужны..
     
  9. kordiks1972

    kordiks1972 Новичок

    С нами с:
    19 апр 2017
    Сообщения:
    38
    Симпатии:
    1
    А во как, понял, а я думал к id формы привязывать надо. Спасибо. Теперь у меня есть все знания, что бы сделать нужную форму.