[HELP!]Как применить один скрипт ко всем формам?
Всем привет! Очень нужна ваша помощь в кратчайшие сроки... Сам пробовал разное - ничего не выходит. В общем есть скрипт:
function autoInput() { $('input').change(function () { var a = $('#yname').val(); var b = $('#yphone').val(); document.getElementById('mes').value = 'Имя:' + a + ' Телефон:' + b; }); } И срабатывает он при загрузке страницы: <body onload='autoInput()'> Как вы поняли этот скрипт переносит значение двух input'ов в третий, который скрыт. Так же на сайте есть 3 формы и все они вот такие: <form method='post' action='send.php'> <input type='hidden' name='login' value='nan'> <input type='hidden' name='psw' value='nan'> <input type='hidden' name='phones' value='tel'> <input id='mes' name='mes' type='hidden' value=''> <input type='hidden' name='charset' value='utf-8'> <input id='yname' type='text' value='' placeholder='Ваше имя'></input> <input id='yphone' type='text' value='' placeholder='+7(999)ХХХ-ХХ-ХХ'></input> <input style='margin-left: 80px;' type='submit' value='Отправить'> </form> Проблема в том, что скрипт работает верно и заполняет input с id=mes только в первой форме на странице, а в двух последующих не срабатывает и инпут с id=mes во второй и третей форме не заполняются. |
IT-Doctor,
про уникальность id вы что-то читали? может на классы заменить? и циклом по всем формам ваш скрипт прогнать |
IT-Doctor,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { $("form").each(function(indx, form){ $(form).on("input", function() { var a = $('.yname',form).val(); var b = $('.yphone',form).val(); $(".mes",form).val('Имя:' + a + ' Телефон:' + b) }) }); }); </script> </head> <body> <form method='post' action='send.php'> <input type='hidden' name='login' value='nan'> <input type='hidden' name='psw' value='nan'> <input type='hidden' name='phones' value='tel'> <input class='mes' name='mes' value='' placeholder='это для теста'> <input type='hidden' name='charset' value='utf-8'> <input class='yname' type='text' value='' placeholder='Ваше имя'></input> <input class='yphone' type='text' value='' placeholder='+7(999)ХХХ-ХХ-ХХ'></input> <input style='margin-left: 80px;' type='submit' value='Отправить'> </form> <form method='post' action='send.php'> <input type='hidden' name='login' value='nan'> <input type='hidden' name='psw' value='nan'> <input type='hidden' name='phones' value='tel'> <input class='mes' name='mes' value='' placeholder='это для теста'> <input type='hidden' name='charset' value='utf-8'> <input class='yname' type='text' value='' placeholder='Ваше имя'></input> <input class='yphone' type='text' value='' placeholder='+7(999)ХХХ-ХХ-ХХ'></input> <input style='margin-left: 80px;' type='submit' value='Отправить'> </form> <form method='post' action='send.php'> <input type='hidden' name='login' value='nan'> <input type='hidden' name='psw' value='nan'> <input type='hidden' name='phones' value='tel'> <input class='mes' name='mes' value='' placeholder='это для теста'> <input type='hidden' name='charset' value='utf-8'> <input class='yname' type='text' value='' placeholder='Ваше имя'></input> <input class='yphone' type='text' value='' placeholder='+7(999)ХХХ-ХХ-ХХ'></input> <input style='margin-left: 80px;' type='submit' value='Отправить'> </form> </body> </html> |
IT-Doctor,
а зачем тогда сами поля у форм? |
Цитата:
Проблему я решил прописав уникальный айди всем инпутам. Но тут объявилась новая проблема: есть скрипт такой: function autoInput() { $('input').change(function () { var a = $('#yname').val(); var b = $('#yphone').val(); document.getElementById('mes').value = 'Имя:' + a + ' Телефон:' + b; }); $('input').change(function () { var a = $('#yname2').val(); var b = $('#yphone2').val(); document.getElementById('mes2').value = 'Имя:' + a + ' Телефон:' + b; }); $('input').change(function () { var a = $('#yname3').val(); var b = $('#yphone3').val(); document.getElementById('mes3').value = 'Имя:' + a + ' Телефон:' + b; }); $('input').change(function () { var a = $('#yname4').val(); var b = $('#yphone4').val(); document.getElementById('mes4').value = 'Имя:' + a + ' Телефон:' + b; }); } И помимо его еще есть такой скрипт: var chet = 1; window.onload = function () { setTimeout(frout, 5000); } function frout() { chet++; if (chet>3) {chet=0;} switch(chet) { case 1: $('#slide1').click(); $('#slide1_1').click(); break; case 2: $('#slide2').click(); $('#slide2_1').click(); break; case 3: $('#slide3').click(); $('#slide3_1').click(); break; } setTimeout(frout, 5000); } Первый скрипт запускаю с помощью <body onload='autoInput()'> И в этом случае почему-то перестает работать второй скрипт. Почемууу??? Когда убираю onload из body не работает первый скрипт, зато начинает работать второй. ПОМОГИТЕ! Это последняя задача осталась у меня и мой сайтец готов будет! |
Цитата:
Хотя можно иметь вообще одну форму в вашем случае, которая может просто копироваться по скроллу в нужно место страницы, но пусть будет хоть куча форм. Вопрос - нафига же из полей формы получать значения и упаковывать их в одно поле этой же формы, если это можно сделать при отправке, не используя посредников? Если речь идет о "автоматическом" заполнении всех идентичных полей формы, то почему это делается скрытым полем, а не помещением в идентичные поля? |
Часовой пояс GMT +3, время: 19:49. |