Форум программистов, компьютерный форум CyberForum.ru

jQuery

Войти
Регистрация
Восстановить пароль
 
henry007
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 4
#1

Обработчик событий - jQuery

17.06.2013, 12:28. Просмотров 559. Ответов 2
Метки нет (Все метки)

Есть простая форма а точнее даже таблица в 3 колонки в центральной колонке есть textarea чуть ниже есть чекбокс который дает возможность создать tr с 3 колонками если отмечен и с 2 если не отмечен, и кнопка для отправки через ajax всего этого дела, работаю с live проблема в том, что чекбоксы которые загружаются через ajax абсолютно не меняют значения, что они отмечены что нет, получаю undefined если самый первый, созданный заранее checkbox отмечен и соответственно checked если отмечен.
Код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?   
    if ($_POST['check']=="undefined") {
        $a =    "<tr><td style='border: 1px solid black;'></td>".
                "<td style='border: 1px solid black;'><textarea class='inputtextarea' name='form_textarea_86'></textarea>".
                "<a id='addst8' href='#' >"."+"."</a></td>".
                "</tr>";
        echo json_encode(array('a' => $a));
    }
    else{
        $a =    "<tr><td style='border: 1px solid black;'></td>".
                "<td style='border: 1px solid black;'><textarea class='inputtextarea' name='form_textarea_86'></textarea>".
                "<a id='addst8' href='#' >"."+"."</a></td>".
                "<td style='border: 1px solid black;'></td></tr>";
        echo json_encode(array('a' => $a));
    }
    
?>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script>  
        $(document).ready(function(){
            $('#addst8').live("click",function(){  
                $.ajax({  
                    type: "POST",  
                    url: "array.php",
                    dataType: "json",
                    data: "check="+$("#check").attr("checked"),
                    success: function(data){
                        alert($("#check").attr("checked"));
                        $("#st8 tr:last-child").after(data.a);
                    }  
                });  
                return false;  
            });
              
        });  
</script>
И сам шаблон таблички
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<table width="100%" border="0" style="border-collapse: collapse;" id="st8"> 
  <tbody> 
    <tr><td align="center" style="border: 1px solid black;"> 
        <h4 align="center"><b>№ статьи</b></h4>
       </td><td align="center" style="border: 1px solid black;"> 
        <h4><b>Наименование статьи</b></h4>
       </td><td style="border: 1px solid black;"> 
        <h4 align="left"><b>Документ</b></h4>
       </td></tr>
   
    <tr><td style="border: 1px solid black;"><b>Ст. 8</b></td><td style="border-image: none;" colspan="2"> 
        <br />
       <b>В рамках общей информации об управляющей организации раскрытию подлежат следующие сведения:</b></td></tr>
   
    <tr><td valign="top" style="border: 1px solid black;"></td>         <td valign="top" style="border: 1px solid black;"><?=$FORM->ShowInput('st8')?><a id="addst8" href="#" >+</a> 
        <br />
       Отдельное поле для файла ?<input type="checkbox" id="check" /></td>   <td valign="top" style="border: 1px solid black;" colspan="1" id="row"></td></tr>
   </tbody>
 </table>
<br />
 <?=$FORM->ShowSubmitButton("Сохранить","Сохранить")?> <?=$FORM->ShowApplyButton("","")?>
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2013, 12:28     Обработчик событий
Посмотрите здесь:

Обработчик событий мыши - jQuery
Доброе утро, форумчане! На сайте есть боковое меню, которое реагирует на скролинг, т.е. при прокрутке вниз скрывается, при возврате...

Как убрать обработчик событий - jQuery
Здравствуйте. Мне нужен свой обработчик события click для кнопок jcarousel. Эти кнопки являются div.jcarousel-next и div.jcarousel-prev....

Установить обработчик событий перед уже имеющимся - jQuery
Здравствуйте! У меня на странице есть некоторый элемент при клике на него вызывается функция f1. Мне нужно установить обработчик так...

Обработчик нажатия на обработчик наведения - jQuery
Всем привет! В приложении файл с кодом для хитрого выпадающего меню. Подскажите как мне сделать, чтобы это меню открывалось при наведении...

Не навешивается обработчик - jQuery
http://demo.bymaga.com.ua/ обунта, при прокрутке, шапка сайта прилепает, меняет свой дизайн немного. в Опере, Хроме, Хромиуме - не...

Обработчик не функционирует - jQuery
$('&lt;div id=&quot;navigation_blob&quot;&gt;&lt;/div&gt;').css({ width:0, height:$(&quot;#navigation li:first a&quot;).height()+10 }).appendTo(&quot;#navigation&quot;); ...

Обработчик формы - jQuery
Ребята что не так тут может быть? &lt;form action=&quot;&quot; method=&quot;post&quot; class=&quot;form&quot;&gt; &lt;div class=&quot;field-left&quot;&gt; &lt;div...

Чудаковатый обработчик - jQuery
Учу JS по учебнику, в нем есть задания, и в решении к заданию были такие строчки: function startResize() { ...

обработчик checkbox - jQuery
Добрый день, Есть форма с checkboxами.(у каждого из них свой id) Если хоть один из них отмечен, то нужно сделать кнопку отправки формы...

Не работает обработчик на <select> - jQuery
Код HTML &lt;span class='fieldname'&gt;Выбор категории&lt;/span&gt; &lt;select name='category' onchange=&quot;selectSpecialist()&quot;&gt; &lt;option...

Не работает обработчик события - jQuery
$(&quot;.dropdown-label&quot;).click(function() { $(&quot;.dropdown-label&quot;).addClass(&quot;open&quot;); }) Такая конструкция не работает, а если делать...

Передача Ajax в обработчик - jQuery
Здравствуйте. Пытаюсь сделать переход по страницам технологией Ajax, но в обработчик постоянно попадает единица как ID, хотя в Value кнопок...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Soldado
729 / 720 / 4
Регистрация: 28.06.2012
Сообщений: 1,318
Записей в блоге: 4
17.06.2013, 15:15     Обработчик событий #2
Неправильно использовать один и тот же id несколько раз - id='addst8'. Заменяйте на класс и элементы ищите относительно кликнутого элемента.
Пора отказываться от метода live как устаревшего (начиная с jQuery 1.9 - не поддерживается). Используйте on делегированно для привязки событий к новым элементам. Правильно будет таблице задать свой id, например, "#table" тогда
Javascript
1
$('#table').on("click",".faddst8", function(){
Для динамических (изменяемых) атрибутов лучше использовать не attr, а pop
Лучше отказаться от undefined. Проверяйте отмеченность так
Javascript
1
2
3
4
5
if ($("#check").is(":checked")) {
var attrV=1;
else{
var attrV=0;
}
и в ajax передавайте переменную attrV
Javascript
1
data: "check="+attrV,
}
В PHP соответственно проверяйте 0 или 1

да и зачем два раза писать
PHP
1
echo json_encode(array('a' => $a));
ведь в любом случае массив отправляете, вынесите его из условий
Donald28
странник
793 / 475 / 43
Регистрация: 28.05.2012
Сообщений: 1,510
Записей в блоге: 2
17.06.2013, 15:23     Обработчик событий #3
потому что сначала jQuery события привязываются к элементам, которые уже созданы на странице. На динамически добавленные элементы эти события уже на распространяются. Т.е. их надо объявлять заново.
Yandex
Объявления
17.06.2013, 15:23     Обработчик событий
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru