XMLHttpRequest возвращает данные, но при обращении к нему статус равен нулю [дубликат]

Если вам нужно одно регулярное выражение, попробуйте:

  (? =. * \ d) (? =. * [az]) (? =. * [AZ]) (?  =. * \ W)  

Краткое объяснение:

  (? =. * [Az]) // используйте положительный взгляд вперед, чтобы увидеть,  (? =. * [AZ]) // используйте положительный взгляд вперед, чтобы увидеть, существует ли хотя бы одно письмо в верхнем регистре (? =. * \ d) // используйте положительный взгляд вперед, чтобы узнать, по крайней мере,  существует одна цифра (? =. * \ W]) // используйте положительный взгляд вперед, чтобы увидеть, существует ли хотя бы один неглавный символ  

И я согласен с SilentGhost, \ W может быть немного шире. Я бы заменил его набором символов следующим образом: [- + _! @ # $% ^ & Amp; *.,?] (не стесняйтесь добавлять больше, конечно!)

30
задан Jeff 18 August 2011 в 05:44
поделиться

4 ответа

Вы хотите передать ссылку на функцию как обратный вызов, а не результат выполнения функции:

showDiv() возвращает некоторое значение; если не используется инструкция return, возвращается undefined.

showDiv является ссылкой на функцию, которая должна быть выполнена.

Это должно работать:

$(document).ready(function(){
    $('a.test').bind("click", showDiv);
});

В качестве альтернативы вы можете использовать анонимную функцию для выполнения более продвинутой функции:

...bind('click', function(){
  foo.showDiv(a,b,c);
  ...more code...
});

В некоторых случаях вы можете хотеть использовать возвращаемое значение с помощью функции в качестве обратного вызова:

function function foo(which)
{
  function bar()
  {
    console.log('so very true');
  }
  function baz()
  {
    console.log('no way!');
  }
  return which ? bar : baz;
}

...click( foo( fizz ) );

В этом примере foo оценивается с помощью fizz и возвращает функцию, которая будет назначена в качестве обратного вызова для события click.

53
ответ дан zzzzBov 15 August 2018 в 14:30
поделиться
  • 1
    В частности, showDiv() вызывает объект-объект, оцененный из выражения expression showDiv - showDiv, просто оценивает объект-объект (в данном случае) который может использоваться как обратный вызов. (Нет «ссылок» ;-) – user 18 August 2011 в 05:40
  • 2
    Огромное спасибо. Задача решена. – Jeff 18 August 2011 в 07:02
  • 3
    +1 Это происходило со мной, и для жизни меня я не мог понять, после прочтения вашего ответа было очевидно. Д'о! – MattSizzle 8 June 2014 в 02:11
  • 4
    Я пробовал каждый путь, и использование имени функции не помогло мне. Наконец, работа анона работала. Благодарю. – punstress 13 May 2015 в 09:39
  • 5
    @MrGuliarte, прочитайте часть, которая начинается ». В качестве альтернативы вы можете использовать анонимную функцию для выполнения более продвинутой функции & quot; – zzzzBov 15 September 2015 в 02:33

Измените его на: $('a.test').bind("click", showDiv); (не помещайте парсеры вокруг showDiv, так как вы хотите передать ссылку на функцию).

3
ответ дан Mrchief 15 August 2018 в 14:30
поделиться

Используйте следующую строку. showDiv() будет вызывать функцию сразу после выполнения этой строки.

$('a.test').bind("click", showDiv);
3
ответ дан ShankarSangoli 15 August 2018 в 14:30
поделиться

Похоже, вы вызываете функцию showDiv прямо там (и привязываете результат возврата showDiv () к обработчику кликов, а не привязываете его напрямую.

Вы хотите что-то вроде

$(document).ready(function() { $('a.test').bind("click", showDiv); });
4
ответ дан tjarratt 15 August 2018 в 14:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: