|
|
|
| есть выпадающий список который по выбору селекта аяксом подгружает новую форму
<form method="post" action="">
<select name="cat" id="cat" onchange="post_c(this)" >
<optgroup label="Категория" >
<?php echo $option ?>
</optgroup>
</select>
</form>
|
function post_c(cat)
{
var div_text = document.getElementById('div_error');
var selected = null;
// Проверяем выбрана ли уже какая-то категория:
if(selected !== null)
{// Если выбрана, проверяем не текущая ли выбрана:
if(selected == cat.value){return;}// Если текущая уже выбрана
}
selected = cat.value;// Если никакая не выбрана, или выбрана не текущая, ставим текущую.
request.open('POST', 'cat_p.php', true)
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.onreadystatechange = function()
{
if ( request.readyState !== 4 ) return;
if ( !request.status || request.status == 200 || request.status == 304 || request.status == 0 )
{
document.getElementById ('c').innerHTML = request.responseText;
}
else { div_text.innerHTML = 'Ошибка запроса XMLHttpRequest'; }
}
request.send ('cat=' + selected);
return;
}
|
подгружается форма ..с кнопкой добавить
<input type="text" value="" name="text" size="33"/>
<input name="Кнопка" type="button" value="Добавить">
|
Как на эту кнопку повесить обработчик чтобы приее нажатии данные из поля text отправлялись аяксом в функцию function post_c() возможно ли или надо писать отдельную функцию | |
|
|
|
|
|
|
|
для: serjinio
(18.05.2009 в 20:04)
| |
var selected = null;
// Проверяем выбрана ли уже какая-то категория:
if(selected !== null)
{// Если выбрана, проверяем не текущая ли выбрана:
if(selected == cat.value){return;}// Если текущая уже выбрана это НИКОГДА не выполнится
}
| ONCANGE сработает именно тогда, когда произойдёт изменение (то самое change переводится как "изменить"). Если вы просто откроете список и не сделаете НОВОГО выбора, то функция вызываться не будет. Поэтому проверять изменение просто НЕ НАДО. НИКОГДА.
<input name="Кнопка" type="button" value="Добавить">
|
Имена (элементов, классов, объектов, ЛЮБОЙ переменной...) и идентификаторы должны содержать только АНГЛИЙСКИЕ буквы, АРАБСКИЕ цифры и символ подчёркивания. Причём начинаться они должны ТОЛЬКО с буквы.
Функции для того и созданы, чтобы работать НЕОДНОКРАТНО и чтобы их можно было вызывать из РАЗНЫХ мест и по РАЗНЫМ событиям.
В данном случае при вызове из списка передавайте функции не сам список, а конкретно его значение - this.value
Соответственно, на кнопку вешайте onclick и передавайте функции value текстового поля.
[поправлено модератором] | |
|
|
|