Форум программистов и сисадминов CyberForum.ru
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум Форум web-программистов > Форум JavaScript > Форум jQuery
Восстановить пароль Регистрация

Ответ Создать новую тему
 
Старый 17.06.2013, 12:28   #1
henry007
Новичок
 
Регистрация: 21.05.2013
Сообщений: 4
Репутация: 0 (0)
Обработчик событий / jQuery

Есть простая форма а точнее даже таблица в 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("","")?>
Старый 17.06.2013, 15:15   #2
Soldado
Форумчанин
 
Аватар для Soldado
 
Регистрация: 28.06.2012
Сообщений: 1,318
Репутация: 716 (707)
Записей в блоге: 4
Лучшие ответы: 4
Обработчик событий

Неправильно использовать один и тот же 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));
ведь в любом случае массив отправляете, вынесите его из условий
Другие темы раздела Форум программистов JavaScript. Обсуждение JavaScript-фреймворка jQuery.
jQuery fancybox iframe
Парни, может кто сталкивался с проблемой, что картинки в iframe не ресайзятся правильно? То лишнее место в ширину(с правой стороны), то лишнее месте в высоту(внизу). Лишнее где-то так в 200-300 px.
data: URL изображения jQuery
Помогите пожалуйста с превью изображений через data: URL <input type="file" id="image_1"> <img id="preview_1" /> <input type="file" id="image_2"> <img id="preview_2" /> $(function() { $("#image_1").change(function(){ //... $("#preview_1").attr('src', image_1);
Старый 17.06.2013, 15:23   #3
Donald28
странник
 
Аватар для Donald28
 
Регистрация: 28.05.2012
Сообщений: 1,222
Репутация: 697 (379)
Лучшие ответы: 7
Обработчик событий / jQuery

потому что сначала jQuery события привязываются к элементам, которые уже созданы на странице. На динамически добавленные элементы эти события уже на распространяются. Т.е. их надо объявлять заново.
Старый 17.06.2013, 15:23
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Автор
C# для начинающих Обработчик событий
Есть панель с контролами, каждый контрол имеет свой номер. Есть рандомное число (int temp). Не могу разобраться с обработчиком. Нужно чтобы по нажатию на контрол имеющий номер рандомного числа выполнялись некоторые действия. Использую конструкцию: this.lst.Click += new...
vladimir8686
Qt Обработчик событий
Здравствуйте.Вопрос такой: int main(int argc, char *argv) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); } Имеется функция, в которой необходимо вызвать метод exec(). Пробовал аналогично, создавать объект QApplication, и через него вызывать...
xKORESHx
Delphi Обработчик событий
создать на форме 3 переключателя(Radiobutton)группу и метку(Label).Текст в метке любой.В результате выбора каждого из переключателей будет меняться тип шрифта(курсив-fsItalic,полужирный-fsBold,подчеркнутый-fsUnderline). procedure TForm1.RadioGroup1Click(Sender: TObject); begin if...
Феечка
C# .NET Обработчик событий
Необходимо перехватывать нажатия кнопок клавиатуры и мыши, чтобы пользователь пока не введет пароль ничего не мог делать в Windows и работа могла осуществлятся ток в окне моей программы тобишь чтобы закрыть ее было нельзя. Из того что прочитал понял что кроме как обработчиком событий нажатия кнопок...
Sotnik13
Delphi для начинающих Обработчик событий
Доброго времени суток уважаемые эксперты! Вообщем есть проблема, есть у меня 3 компонента типа TEdit, в 2 из них можно вводить отрицательные и вещественные числа, а в 1 только целые положительные. Вопрос в том, как это можно учесть в одном Keypress'е??? Вот попытался с помощью Sender определить с...
S2dent
Опции темы

Текущее время: 10:29. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.