Как отобразить метку в зависимости от того, есть ли в раскрывающемся списке параметры? - PullRequest
1 голос
/ 11 мая 2009

У меня есть выпадающий список, который заполняется с помощью функции Javascript, предоставленной внешней компанией. Он в основном проверяет, является ли ввод действительным типом почтового индекса, а затем возвращает возможные адреса в раскрывающийся список.

Я застрял в том, как отобразить небольшое сообщение, когда в раскрывающемся списке есть некоторые параметры, т. Е. Какой-то адрес найден и заполнен в списке выбора.

Я пробовал это:

$(function() {
  function showmsg() {
    if ($("#selectaddress").length > 1)
      $('#buttonhint2').slideDown('normal');
  }
  $("#btnFind").click(showmsg)
});

Но это ничего не делает. Я полный новичок во всем этом, поэтому я не уверен, что я даже лаю нужное дерево. Любая помощь высоко ценится.

Ответы [ 2 ]

2 голосов
/ 11 мая 2009

Что ж, вам, вероятно, придется подождать, пока эта внешняя функция не выполнит свой код. Я ничего не знаю об этой функции или о том, где она запускается, поэтому я не могу вам чем-то помочь. Если он предоставляет вам возможность дать ему функцию обратного вызова, просто передайте ей имеющуюся у вас функцию 'showmsg' (и записали ее вне оператора готовности документа, как упоминал Джимми).

Если он не учитывает параметр функции обратного вызова и вы знаете, что он запускается при загрузке страницы, вы можете отложить вашу функцию showmsg, скажем, на 500 мс или около того. Это может дать достаточно времени для первого скрипта бежать (но вы бы хотели поиграть с этим, пока не поймете все правильно). Если первая функция использует AJAX для извлечения данных, вы можете пересмотреть использование этой функции или просто изменить эту стороннюю функцию (если лицензия позволяет), чтобы добавить функцию обратного вызова.

Вы можете настроить задержку скрипта следующим образом:

$(function() {
    setTimeout(function() {
        if ($("#selectaddress option").length > 0) {    
            $('#buttonhint2').slideDown('normal');  
        }
    },500);
});

Кроме того, помните, что вам не нужно проверять количество параметров в поле выбора, а не количество полей выбора, которые есть на странице. И вы проверяли, по крайней мере, две опции ранее, предоставленный мной скрипт проверяет, по крайней мере, 1.

1 голос
/ 11 мая 2009

Попробуйте переместить вашу функцию showmsg () за пределы документа:

function showmsg() {
  if ($("#selectaddress").length > 1)      
    $('#buttonhint2').slideDown('normal');  
} 
$(function() {   
   $("#btnFind").click(showmsg)
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...