Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.05.2012, 16:14
Интересующийся
Отправить личное сообщение для Prototype800 Посмотреть профиль Найти все сообщения от Prototype800
 
Регистрация: 19.05.2012
Сообщений: 13

Нид хелп! Разобраться в коде
Ребят, помогите. Какой код нужно вставить и куда, чтобы при удачной отправке данных поля input сбрасывались

Пример, имя одного из полей выглядит frm_order_tel

function send_form(frm, win, message_ok) {

//alert(frm.length);
/*
var frm_name = frm.frm_main_name.value;
var frm_address = frm.frm_main_address.value;
var frm_text = frm.frm_main_text.value;
*/
// debug
//var debug = document.getElementById('debug');
//alert('11');
//debug.innerHTML = '-----<br />';return false;
var fldname;
//alert('ok');
//return false;
var re =  /^(frm_)/g
var re_1space =  /^(\s)/g
var re_empty =  /^((.*)(\*)$)/g

var out_mes = '';
var out_mes_empty = '<h1>Вы не заполнили обязательные поля: </h1><br />';

var data_txt = '';
for (var i=0;i<frm.length;i++) {
if (frm[i].name) {
str = frm[i].name;
result = str.match(re);

if ((result && result != null)) {
if ((frm[i].name && frm[i].name != null) && (frm[i].value && frm[i].value != null)) {
if (frm[i].title && frm[i].title != null) fldname = frm[i].title;
else fldname = frm[i].name;
data_txt += "&" + fldname + "=" + frm[i].value;

}

var ctitle = frm[i].getAttribute("tooltip");
if (ctitle && ctitle != null) ctitle = ctitle.replace(re_1space,'');
// проверка на обязательные поля
if ((frm[i].title && frm[i].title != null) || (ctitle && ctitle != null)) {
ctitle = '' + ctitle;
result_empty = ctitle.match(re_empty);
//if (ctitle) result_empty = ctitle.match(re_empty);
//else if (frm[i].title) {ctitle = frm[i].title;result_empty = frm[i].title.match(re_empty);}
var re_star = /\*$/g;
//ctitle.replace(re_star,'')

var title_without_star = ctitle.replace(re_star,'');
title_without_star = title_without_star.replace(re_1space,'');

/*
if (frm[i].value == title_without_star) {
debug.innerHTML = title_without_star + '/ - /' + frm[i].value + '-<br />';return false;
}
else {debug.innerHTML = 'no-<br />';return false;}
*/

if (result_empty) {
  
  if ((!frm[i].value) || (frm[i].value == title_without_star)) {
  //debug.innerHTML = title_without_star + '/ - /' + frm[i].value + '-<br />';return false;
    out_mes += '— ' + title_without_star;
    out_mes += '<br />';
  }
}
}
}



}
}
//debug.innerHTML = title_without_star + '/ - /' + out_mes + '-<br />';return false;
if (win == null || !win) win = 'window';

//err_mesBlockTitle = document.getElementById('ui-dialog-title');
err_mesBlock = document.getElementById('windowContent');

if (out_mes && out_mes != null) {
  out_mes = out_mes_empty + out_mes;
  
  //out_mes = out_mes.replace(/(\,\s)$/g,'');
  
  //debug.innerHTML += out_mes + '-<br />';
  
  
  //err_mesBlockTitle.innerHTML = '<span>Ошибка</span>';
  
  err_mesBlock.innerHTML = out_mes;
  //jQuery('#' + win).show();//old
  //alert('win');
  jQuery('#' + win).dialog('open');
  return false;
}
data_txt = data_txt.replace(/^&/g,'');

// debug
//debug.innerHTML += data_txt + '-<br />';
//return false;

var bodyContent = jQuery.ajax({
      url: "/js/send.php",
      global: false,
      type: "POST",
      data: data_txt,//"name=" + frm_name + "&address=" + frm_address + "&text=" + frm_text,
      dataType: "html",
      async:false,
      success: function(msg, textStatus){
         //alert(msg);
         
         //msgxml = encodeURIComponent(msg);
         msgxml = msg;
         //alert(msgxml);
         
         if (textStatus == 'success') {
         
         //js_win_open('Сообщение отправлено','Ваше сообщение отправлено, оно будет рассмотрено в самое ближайшее время.');
    

          //err_mesBlockTitle.innerHTML = 'Сообщение отправлено';
          //err_mesBlockTitle.innerHTML = '<span>Сообщение отправлено</span>';
          if (!message_ok || message_ok == null) err_mesBlock.innerHTML = '<h1>Ваша заявка принята, она будет рассмотрена в ближайшее время. Благодарим за обращение в нашу компанию!</h1>';
          else  err_mesBlock.innerHTML = '<h1>' + message_ok + '</h1>';
          jQuery('#window2').dialog('close');
          //jQuery('#' + win).show();old
          jQuery('#' + win).dialog('open');
         }
         else {
         js_win_open('При отправки сообщения возникла ошибка','При отправке произошла ошибка. Приносим свои извинения.');//else alert('При отправке произошла ошибка. Приносим свои извинения.');
         }//
      }

   }
).responseText;


 jQuery(document).ajaxError(function(e, xhr, settings, exception) {
//alert('error in: ' + settings.url + ' \\n'+'error:\\n' + exception + '\\n' + xhr.status);
alert(xhr.status);
}); 



    return false;
}
Ответить с цитированием
  #2 (permalink)  
Старый 31.05.2012, 17:07
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Простейщее -поставьте в Каждую форму кнопку Reset
<input name="resetForm1" type="reset" value="Сброс"/>

И вызывайте её клик при успешной отправке

$("input[name='resetForm1']").click()
Ответить с цитированием
  #3 (permalink)  
Старый 31.05.2012, 17:16
Интересующийся
Отправить личное сообщение для Prototype800 Посмотреть профиль Найти все сообщения от Prototype800
 
Регистрация: 19.05.2012
Сообщений: 13

Сообщение от Deff Посмотреть сообщение
Простейщее -поставьте в Каждую форму кнопку Reset
<input name="resetForm1" type="reset" value="Сброс"/>

И вызывайте её клик при успешной отправке

$("input[name='resetForm1']").click()
Что-то подобное крутилось в голове, подскажите, как это реализовать в моем коде. Как кнопку ресет спрятить в хиден ?

Последний раз редактировалось Prototype800, 31.05.2012 в 17:28.
Ответить с цитированием
  #4 (permalink)  
Старый 31.05.2012, 17:26
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Prototype800
Можно же кнопку ресет спрятить в хиден ?
<input style="display:none" name="resetForm1" type="reset" value="Сброс"/>
Ответить с цитированием
  #5 (permalink)  
Старый 31.05.2012, 17:47
Интересующийся
Отправить личное сообщение для Prototype800 Посмотреть профиль Найти все сообщения от Prototype800
 
Регистрация: 19.05.2012
Сообщений: 13

Сообщение от Deff Посмотреть сообщение
<input style="display:none" name="resetForm1" type="reset" value="Сброс"/>
Все получилось, спасибо большое.

Еще 1 есть нерешенный вопрос, куда и какой вставить код с валидацией, например "Только числа" ^[0-9\ ]+$ Для поля frm_order_tel

Сейчас идет валидация на пустые поля и вылазиет ошибка "Вы не заполнили обязательные поля" которые отмечены *, нужно чтобы с этой ошибкой срабатывала и проверка на шаблон
Ответить с цитированием
  #6 (permalink)  
Старый 31.05.2012, 17:55
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Prototype800,
В Каждой форме добавить атрибут с перечислением полей нужных валидизатору, при проверке формы считывать атрибут и цикл по необходимых полей
Ответить с цитированием
  #7 (permalink)  
Старый 31.05.2012, 18:46
Интересующийся
Отправить личное сообщение для Prototype800 Посмотреть профиль Найти все сообщения от Prototype800
 
Регистрация: 19.05.2012
Сообщений: 13

Сообщение от Deff Посмотреть сообщение
Prototype800,
В Каждой форме добавить атрибут с перечислением полей нужных валидизатору, при проверке формы считывать атрибут и цикл по необходимых полей
Между какими строками нужно это вставить, в яве не сильно понимаю
Ответить с цитированием
  #8 (permalink)  
Старый 31.05.2012, 21:05
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Prototype800
Между какими строками нужно это вставить, в яве не сильно понимаю
Ну например первым тегом после <form
<input type="hidden" id="frm_match" name="match" value="1,2,3,4,5,6,7,8,9">
Затем парсите в скрипте перед началом валидизации
var NumArr = $("#frm_match").val().split(",")
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться в коде select.find('#edit_my_location').hide().prev().sho w(); vuler Общие вопросы Javascript 0 21.02.2012 14:01
Помогите разобраться со скриптом слайдшоу InviS jQuery 0 23.09.2010 14:47
Помогите пожалуйста разобраться Kupu4 Ваши сайты и скрипты 0 21.01.2010 10:44
Разобраться с autocompleater udaff.es jQuery 0 03.10.2009 00:59
Работа с окнами через opener. Нид хелп RAUS Events/DOM/Window 1 29.07.2009 19:59