Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Дважды срабатывает скрипт / 13 сообщений из 13, страница 1 из 1
11.06.2013, 00:52
    #38293368
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды срабатывает скрипт
Добрый вечер, у меня товарищи еще один вопрос

У меня происходит следующее

есть скрипт, или так сказать метод

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
function edit_guest(idGuest) {
    boxAddEditShow();
	
	//e.stopPropagation();
	
    $("#cancel_add_guest").click(function(){
        
        $("#FName").val("");
        $("#Name").val("");
        $("#SName").val("");
        $("#SexG").val("");
        $("#DataR").val("");
        $("#TypeDoc").val("");
        $("#SDoc").val("");
        $("#NDoc").val("");
        $("#VDoc").val("");
        $("#KemVDoc").val("");
        $("#Addr").val("");
        $("#MestRab").val(""); 
         
        $("#box_add_edit").hide();  
    });

	
    $(".box_close").click(function(){
        
        $("#FName").val("");
        $("#Name").val("");
        $("#SName").val("");
        $("#SexG").val("");
        $("#DataR").val("");
        $("#TypeDoc").val("");
        $("#SDoc").val("");
        $("#NDoc").val("");
        $("#VDoc").val("");
        $("#KemVDoc").val("");
        $("#Addr").val("");
        $("#MestRab").val("");        
        
        $("#box_add_edit").hide();         
    });	
	
	
    var url_ = "Registers/ajax/get_info_client.php";
    if (idGuest != 0) {
        
        $.ajax({
            type: "GET",
            async: false,
            url: url_,
            dataType: "json",
            data: 'id_guest='+idGuest,
            error: function(){  alert("Ошибка"); },
            success: function (data) {
                         $("#FName").val(data[0]['FirstName']);
                         $("#Name").val(data[0]['Name']);
                         $("#SName").val(data[0]['SecondName']);
                         $("#SexG").val(data[0]['Sex']);
                         $("#DataR").val(data[0]['Data_R']);
                         $("#TypeDoc").val(data[0]['DocType']);
                         $("#SDoc").val(data[0]['DocSeria']);
                         $("#NDoc").val(data[0]['DocNum']);
                         $("#VDoc").val(data[0]['DocDataV']);
                         $("#KemVDoc").val(data[0]['DocKem']);
                         $("#Addr").val(data[0]['Adress']);
                         $("#MestRab").val(data[0]['MestRab']);						 
                     }
        });              
    }	
	
	
	$("#add_guest").click(function(e){	    
	     
		 
	     var err="";
         var fname = $("#FName").val();
         var name = $("#Name").val();
         var sname = $("#SName").val();
         var sexg = $("#SexG").val();
         var datar = $("#DataR").val();
         var tdoc = $("#TypeDoc").val();
         var sdoc = $("#SDoc").val();
         var ndoc = $("#NDoc").val();
         var vdoc = $("#VDoc").val();
         var kemvdoc = $("#KemVDoc").val();
         var addr = $("#Addr").val();
         var mrab = $("#MestRab").val();		 
		 
         if (fname == "") { err=err+"Введите фамилию.\n" }
         if (name == "") { err=err+"Введите имя.\n" }
         if (sdoc == "") { err=err+"Введите серию документа.\n" }
         if (ndoc == "") { err=err+"Введите номер документа.\n" }
         if (vdoc == "") { err=err+"Введите дату выдачи документа.\n" } 
         if (kemvdoc == "") { err=err+"Введите кем выдан документ.\n" }
         if (addr == "") { err=err+"Введите адрес проживания.\n" }
         if (mrab == "") { err=err+"Введите место работы." }
       
         if (err != "")  { alert(err); return false; } 	
	     
  
		  alert("editing...");		  
		  $("#box_add_edit").hide();
		  
	 
	});

}



сам блок box_add_edit, у него в стилях прописано display:none

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
  <div id="box_add_edit">
      <a class="box_close"></a>
      <p>Добавить нового гостя</p>
      <table>
         <tr>
           <th>Фамилия: </th>
           <td><input type="text" id="FName" value="" /></td>
         </tr>
         <tr>
           <th>Имя: </th>
           <td><input type="text" id="Name" value="" /></td>
         </tr>
         <tr>
           <th>Отчество: </th>
           <td><input type="text" id="SName" value="" /></td>
         </tr>
         <tr>
           <th>Дата рождения: </th>
           <td><input type="text" id="DataR" class="datapicker" value="" readonly="true" /></td>
         </tr>
         <tr>
           <th>Пол: </th>
           <td><select id="SexG"><option value="М">Мужской</option><option value="Ж">Женский</option></select></td>
         </tr>
         <tr>
           <th>Тип документа: </th>
           <td><select id="TypeDoc"><option value="1">Паспорт</option><option value="2">Удостоверение</option></select></td>
         </tr>         
         <tr>
           <th>Серия документа: </th>
           <td><input type="text" id="SDoc" value="" /></td>
         </tr>
         <tr>
           <th>Номер документа: </th>
           <td><input type="text" id="NDoc" value="" /></td>
         </tr>
         <tr>
           <th>Дата выдачи: </th>
           <td><input type="text" id="VDoc" class="dataVid" value="" readonly="true" /></td>
         </tr>
         <tr>
           <th>Кем выдан: </th>
           <td><input type="text" id="KemVDoc" value="" /></td>
         </tr>
         <tr>
           <th>Адрес проживания: </th>
           <td><input type="text" id="Addr" value="" /></td>
         </tr>
         <tr>
           <th>Место работы: </th>
           <td><input type="text" id="MestRab" value="" /></td>
         </tr>                                                                               
      </table>
      <div>
         <button id="add_guest">Сохранить</button>
         <button id="cancel_add_guest">Отмена</button>
      </div>
   </div>



Короче у меня когда обновищь страницу, нажмешь на ссылке открывается типа как форма, затем, когда я нажимаю на кнопку с id "add_guest", происходит закрытие, но перед этим выходит алерт, теперь когда заново открываю этот блок, и нажимаю кнопку Сохранить, у меня появляется alert один раз, а затем окрывается alert предыдущих.

Надеюсь нормально написал, не пойму в чем дело?
...
Рейтинг: 0 / 0
11.06.2013, 01:13
    #38293375
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды срабатывает скрипт
такой же скрипт у меня и на добавление

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
function add_new_guest() {
    	
    $("#FName").val("");
    $("#Name").val("");
    $("#SName").val("");
    $("#SexG").val("");
    $("#DataR").val("");
    $("#TypeDoc").val("");
    $("#SDoc").val("");
    $("#NDoc").val("");
    $("#VDoc").val("");
    $("#KemVDoc").val("");
    $("#Addr").val("");
    $("#MestRab").val("");    
    
    boxAddEditShow();
   
    
    $(".box_close").click(function(){
        
        $("#FName").val("");
        $("#Name").val("");
        $("#SName").val("");
        $("#SexG").val("");
        $("#DataR").val("");
        $("#TypeDoc").val("");
        $("#SDoc").val("");
        $("#NDoc").val("");
        $("#VDoc").val("");
        $("#KemVDoc").val("");
        $("#Addr").val("");
        $("#MestRab").val("");        
        
        $("#box_add_edit").hide();         
    });
    
    $("#cancel_add_guest").click(function(){
        
        $("#FName").val("");
        $("#Name").val("");
        $("#SName").val("");
        $("#SexG").val("");
        $("#DataR").val("");
        $("#TypeDoc").val("");
        $("#SDoc").val("");
        $("#NDoc").val("");
        $("#VDoc").val("");
        $("#KemVDoc").val("");
        $("#Addr").val("");
        $("#MestRab").val(""); 
         
        $("#box_add_edit").hide();  
    });
    
    $("#add_guest").click(function(e){
        var err="";	
        var fname = $("#FName").val();
        var name = $("#Name").val();
        var sname = $("#SName").val();
        var sexg = $("#SexG").val();
        var datar = $("#DataR").val();
        var tdoc = $("#TypeDoc").val();
        var sdoc = $("#SDoc").val();
        var ndoc = $("#NDoc").val();
        var vdoc = $("#VDoc").val();
        var kemvdoc = $("#KemVDoc").val();
        var addr = $("#Addr").val();
        var mrab = $("#MestRab").val();
        
        
        if (fname == "") { err=err+"Введите фамилию.\n" }
        if (name == "") { err=err+"Введите имя.\n" }
        if (sdoc == "") { err=err+"Введите серию документа.\n" }
        if (ndoc == "") { err=err+"Введите номер документа.\n" }
        if (vdoc == "") { err=err+"Введите дату выдачи документа.\n" }
        if (kemvdoc == "") { err=err+"Введите кем выдан документ.\n" }
        if (addr == "") { err=err+"Введите адрес проживания.\n" }
        if (mrab == "") { err=err+"Введите место работы." }
        
        if (err != "")  { alert(err); return false; } 
                
        
        var dataString = 'fname='+fname+'&name='+name+'&sname='+sname+'&sexg='+sexg+'&datar='+datar+'&tdoc='+tdoc+
                         '&sdoc='+sdoc+'&ndoc='+ndoc+'&vdoc='+vdoc+'&kemvdoc='+kemvdoc+'&addr='+addr+'&mrab='+mrab;       
        
		
        $.ajax({
            type: "POST",
            async: false,
            url: "/pacient/add/",
            dataType: "html",
            data : dataString,
            beforeSend: function() { },
            error: function(){  alert("Ошибка"); },                  
            success: function(data) {               
                   $("#list").append(data);
 
                
                $("#FName").val("");
                $("#Name").val("");
                $("#SName").val("");
                $("#SexG").val("");
                $("#DataR").val("");
                $("#TypeDoc").val("");
                $("#SDoc").val("");
                $("#NDoc").val("");
                $("#VDoc").val("");
                $("#KemVDoc").val("");
                $("#Addr").val("");
                $("#MestRab").val(""); 
                                 
                $("#box_add_edit").hide();
            } 
        });
        
    }) 
}
...
Рейтинг: 0 / 0
11.06.2013, 01:17
    #38293378
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды срабатывает скрипт
И когда научимся уважать коллег и не подкладывать им простыни? Так не короче?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
function edit_guest(idGuest) {
    boxAddEditShow();
    $("#cancel_add_guest").click(function(){
        $("#FName, #Name, #SName, #SexG, #DataR, #TypeDoc, #SDoc, #NDoc, #VDoc, #KemVDoc, #Addr, #MestRab").val(""); 
        $("#box_add_edit").hide();  
    });
	
    $(".box_close").click(function(){
        $("#FName, #Name, #SName, #SexG, #DataR, #TypeDoc, #SDoc, #NDoc, #VDoc, #KemVDoc, #Addr, #MestRab").val(""); 
        $("#box_add_edit").hide();         
    });	
	
    var url_ = "Registers/ajax/get_info_client.php";
    if (idGuest != 0) {
        $.ajax({type:"GET", async:false, url:url_, dataType:"json", data:"id_guest=" + idGuest, error:function(){alert("Ошибка");},
            success:function(data){
                var _data = data[0];
                $("#FName").val(_data.FirstName);
                $("#Name").val(_data.Name);
                $("#SName").val(_data.SecondName);
                $("#SexG").val(_data.Sex);
                $("#DataR").val(_data.Data_R);
                $("#TypeDoc").val(_data.DocType);
                $("#SDoc").val(_data.DocSeria);
                $("#NDoc").val(_data.DocNum);
                $("#VDoc").val(_data.DocDataV);
                $("#KemVDoc").val(_data.DocKem);
                $("#Addr").val(_data.Adress);
                $("#MestRab").val(_data.MestRab);
            }
        });              
    }	
	
    $("#add_guest").click(function(e){	    
        var err="", fname = $("#FName").val(), name = $("#Name").val(), sname = $("#SName").val(), sexg = $("#SexG").val(), datar = $("#DataR").val(), tdoc = $("#TypeDoc").val();
        var sdoc = $("#SDoc").val(), ndoc = $("#NDoc").val(), vdoc = $("#VDoc").val(), kemvdoc = $("#KemVDoc").val(), addr = $("#Addr").val(), mrab = $("#MestRab").val();
         if (fname == "") { err=err+"Введите фамилию.\n" }
         if (name == "") { err=err+"Введите имя.\n" }
         if (sdoc == "") { err=err+"Введите серию документа.\n" }
         if (ndoc == "") { err=err+"Введите номер документа.\n" }
         if (vdoc == "") { err=err+"Введите дату выдачи документа.\n" } 
         if (kemvdoc == "") { err=err+"Введите кем выдан документ.\n" }
         if (addr == "") { err=err+"Введите адрес проживания.\n" }
         if (mrab == "") { err=err+"Введите место работы." }
         if (err != "")  { alert(err); return false; } 	
	 alert("editing...");		  
	 $("#box_add_edit").hide();
    });
}
...
Рейтинг: 0 / 0
11.06.2013, 01:22
    #38293379
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды срабатывает скрипт
Спасибо, за поправку

А вот почему у меня возникает такое что когда вызываю, метод add_guest все сначало добавляется нормально, затем когда я вызываю метод edit_guest, у меня происходит не редактирование, а заново добаляется запись, да еще выскакивает ошибка, что поля не введены.
...
Рейтинг: 0 / 0
11.06.2013, 02:02
    #38293386
asws
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды срабатывает скрипт
Aina2008,

А не происходит-ли навешивание дублирующих обработчиков при каждом вызове edit_guest ?
Тогда будет столько алертов, сколько дублей обработчиков уже навешано, причём, пока висит алерт, выполнение JS-кода останавливается.
P.S. Это предположение, так как с jquery не работаю.
...
Рейтинг: 0 / 0
11.06.2013, 02:09
    #38293387
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды срабатывает скрипт
но мне нужно вызывать, каждый раз когда редактирую данные.
А где интересно там дублируются?
...
Рейтинг: 0 / 0
11.06.2013, 02:17
    #38293389
asws
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды срабатывает скрипт
Aina2008но мне нужно вызывать, каждый раз когда редактирую данные.
А где интересно там дублируются?для того, чтобы функция вызывалась сколько угодно раз, достаточно один раз задать обработчик ... .click(function(){...});
...
Рейтинг: 0 / 0
11.06.2013, 02:18
    #38293390
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды срабатывает скрипт
asws,

насколько я понял я так и делаю
...
Рейтинг: 0 / 0
11.06.2013, 02:25
    #38293392
asws
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды срабатывает скрипт
а сколько раз вызываются функции edit_guest() и add_new_guest() ?
...
Рейтинг: 0 / 0
11.06.2013, 02:26
    #38293393
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды срабатывает скрипт
asws,

а как лучше сделать ели можно код, а то я что то запарился
...
Рейтинг: 0 / 0
11.06.2013, 02:32
    #38293394
asws
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды срабатывает скрипт
я в jquery не разбираюсь, но если метод .click() добавляет новый обработчик, не затирая старый,
и при этом любая из функций edit_guest() или add_new_guest() будет вызвана более одного раза, или будут поочереди вызваны обе,
значит будет добавлено по 2 и более аналогичных обработчика клика, со всеми вытекающими последствиями.

Вместо вызова alert() делайте вывод сообщения в консоль и смотрите что будет - так будет лучше видно что происходит
...
Рейтинг: 0 / 0
11.06.2013, 03:03
    #38293399
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды срабатывает скрипт
asws,

Кажись понял, сейчас начал исправлять, блин как я сам до этого не додумался, наверное запарился
...
Рейтинг: 0 / 0
11.06.2013, 10:18
    #38293548
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды срабатывает скрипт
Aina2008asws,

а как лучше сделать ели можно код, а то я что то запарилсяПростыни по стиранию значений можно сократить до одной строчки:
Код: javascript
1.
$(".container input[id][type=text]").val("");

Остальные тоже, но думать об этом нужно было заранее, задавая элементам id (или другие атрибуты) в соответствии с названиями полей.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Дважды срабатывает скрипт / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]