[Ликбез]

Форма входа

Меню сайта



Выпонение функции
[1] nick1594 [19.07.2012, 14:21]
Подскажыте как сделать что бы функцыя send() выполнялась только тогда, когда выполнена функцыя ls()
Code

function ls() {
  $('#reasons').html('<hr><textarea id="reason" style="height:100px;width: 100%"></textarea>');
}
function send() {
  $("#prelaod").html('<img src="/ajax/load.gif" id="ajaxWait" />');
  var fstat = $('#ldF13').val();
  mes = $('#reason').val();
  if (fstat.substring(0, 1) == '3') {
   var message = 'Извините, [b]' + names + '[/b], но ' + $('#ldF1').val() + ' не был одобрен по причине: [br][b]Недооформлено[/b][br]' + mes;
  } else if (fstat.substring(0, 1) == '5') {
   var message = 'Извините, [b]' + names + '[/b], но ' + $('#ldF1').val() + ' не был одобрен по причине: [br][b]На доработке[/b][br]' + mes;
  } else if (fstat.substring(0, 1) == '6') {
   var message = 'Извините, [b]' + names + '[/b], но ' + $('#ldF1').val() + ' не был одобрен по причине: [br][b]Сомнительно[/b][br]' + mes;
  } else if (fstat.substring(0, 1) == '8') {
   var message = 'Извините, [b]' + names + '[/b], но ' + $('#ldF1').val() + ' не был одобрен по причине: [br][b]Повтор[/b][br]' + mes;
  }
  $.get("/index/14-0-0-1", function (pm) {
   ssid = $("input[name='ssid']", pm).val();
   $.post("/index", {
    s: names,
    subject: 'Статус раздачи ' + $('#ldF1').val(),
    message: message,
    ssid: ssid,
    a: 18
   },
   function (re) {
    if ($($(re).text()).text().indexOf("успешно") > -1) {
     $('#reasons, #prelaod').fadeOut(300);
    }
   });
  });
}

а то просто у меня в ссылке сохранить файл стоит функцыя sendd() а в ней та самая send(); что бы выполнять действие скрипта что выше,
у меня ж на даный момент получаеться что если я редактирую материал то пользователю отправляеться лс, а как писал выше нужно что бы отправлялось только если будет выполнена функцыя ls()
Code

  function sendd() {
   if ($('#suggEdit').val() == '') {
    $('#alertt').lightbox();
   } else {  
                         send();
    $('#doSmbBt').click();
   };
  }
[2] likbezz [19.07.2012, 17:05]
nick1594,
Quote (nick1594, Чт, 19.07.2012, 14:21:33)
Подскажыте как сделать что бы функцыя send() выполнялась только тогда, когда выполнена функцыя ls()

Запускать вторую из первой, разве не очевидно? )
Можно с тайм-аутом, что бы наверняка.
[3] nick1594 [19.07.2012, 17:11]
Запускать вторую из первой, разве не очевидно? )

как?

вот тут
при нажатии на сохранить материал функцыя send() будет срабатывать сама по себе, а нужно что бы только тогда когда запущена ls()
Code
function sendd() {  
    if ($('#suggEdit').val() == '') {  
     $('#alertt').lightbox();  
    } else {   
          send(); // вот она
     $('#doSmbBt').click();  
    };  
   }
[4] likbezz [19.07.2012, 17:22]
nick1594,
Quote (nick1594, Чт, 19.07.2012, 17:11:42)
вот тут
при нажатии на сохранить материал функцыя send() будет срабатывать сама по себе, а нужно что бы только тогда когда запущена ls()

У тебя функция ls() ничего не делает, кроме того что добавляет поле.
Для чего она? Почему она отдельно если от неё зависят другие функции? Может проще объединить?
Если нет - тогда проверяй наличие объекта который вставляет функция ls() - ID reason - если его нет - выходи.

Делай проверки, всегда делай проверки - это поможет избежать ошибок и оптимизировать код.
[5] nick1594 [19.07.2012, 17:29]
У тебя функция ls() ничего не делает, кроме того что добавляет поле.


ну правильно добавляет поле в которо я ввожу текст который будет отправлен пользователю в лс
вот тут

Code
var message = 'Извините, [b]' + names + '[/b], но ' + $('#ldF1').val() + ' не был одобрен по причине: [br][b]Повтор[/b][br]' + mes // ВОТ ОНО ТУТ БУДЕТ;
[6] likbezz [19.07.2012, 17:36]
nick1594,
Quote (nick1594, Чт, 19.07.2012, 17:29:09)
ну правильно добавляет поле в которо я ввожу текст который будет отправлен пользователю в лс

Вопрос:
Зачем это вынесено в отдельную функцию?

Решение уже дано выше - проверяй наличие поля перед выполнением следующей функции.
[7] nick1594 [19.07.2012, 17:39]
Зачем это вынесено в отдельную функцию?

потому что та функцыя выполняеться если выбран один из пунктов селектора
Code
<option value="5" onclick="ls();">На доработке</option>
[8] likbezz [19.07.2012, 17:48]
nick1594, Проверяй наличие поля перед выполнением следующей функции.

Quote (nick1594, Чт, 19.07.2012, 17:39:44)
потому что та функцыя выполняеться если выбран один из пунктов селектора


[9] nick1594 [19.07.2012, 17:50]
Code
function sendd() {  
    if ($('#suggEdit').val() == '') {  
     $('#alertt').lightbox();  
    } else {   
      if ($('#reasons').html() != ' ')send(); }
     $('#doSmbBt').click();  
    };  
   }

типа так?
[10] likbezz [19.07.2012, 17:53]
nick1594,
Quote (nick1594, Чт, 19.07.2012, 17:50:55)
типа так?

Нет, не так, но уже лучше.
[11] nick1594 [19.07.2012, 17:54]
Нет, не так

хм... ну тогда хз как проверить поле, с таки не сталкивался еще
[12] likbezz [19.07.2012, 18:07]
nick1594,
Quote (nick1594, Чт, 19.07.2012, 17:54:31)
хм... ну тогда хз как проверить поле

А зачем проверять поле?
Нужно всего лишь проверить НАЛИЧИЕ объекта на странице.
Code
if ($('#reasons').size()){...}
[13] nick1594 [19.07.2012, 18:08]
likbezz, неужели:D
Code
if ($('#reasons').find('textarea').size()>0) send()
[14] likbezz [19.07.2012, 18:18]
nick1594,
Quote (nick1594, Чт, 19.07.2012, 18:08:00)
if ($('#reasons').find('textarea').size()>0) send()

Это типа мы не ищем легких путей?
Тогда уж вот так:
Code
$(document).each(function(i){
   if($(this).attr('id')=='reasons'){
    if($(this).find('textarea')){
     if($(this).find('textarea').attr('id')=='reasons'){
      if($(this).find('textarea').size()>0){
       send();
      }
     }
    }
   }
});
[15] nick1594 [19.07.2012, 18:20]
Тогда уж вот так:

surprised это что такое??


Полная версия сайта