[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, время: 05:14. |