Случай переключения jQuery не работает, проблема с синтаксисом? - PullRequest
0 голосов
/ 12 января 2012

Почему этот коммутатор не работает? Я перепробовал любой возможный синтаксис, но он просто не работает. Или коммутационный шкаф неправильный метод в этом случае?

jQuery('#main input').blur(function() {
    switch(jQuery(this).attr('name') {
        case 'email':
            jQuery(this).val('That's you e-Mail adress.');
            break;
        case 'nickname':
            jQuery(this).val('That's your nickname.');
            break;
    }
});

Обратите внимание: я использую jQuery в неконфликтном режиме, поэтому я использую jQuery вместо $.

Ответы [ 3 ]

1 голос
/ 12 января 2012

Использование множества ' в одной и той же строке нарушает ваш синтаксис.изменить, как показано ниже,

jQuery('#main input').blur(function() {
    switch(jQuery(this).attr('name')) {  // <-- fix 1: added closing )
        case 'email':
            jQuery(this).val("That's you e-Mail adress."); // <-- fix 2: quotes 
        break;
        case 'nickname':
            jQuery(this).val("That's your nickname.");  // <-- fix 3: quotes 
            break;
    }
});
1 голос
/ 12 января 2012

У вас есть несколько ошибок здесь:

switch(jQuery(this).attr('name') {

Отсутствует закрывающая скобка. Должно быть:

switch(jQuery(this).attr('name')) {

Вы должны экранировать кавычку в этой строке:

jQuery(this).val('That's you e-Mail adress.');

Как это:

jQuery(this).val('That\'s you e-Mail adress.');
1 голос
/ 12 января 2012

У вас есть два типа ошибок:

  1. Отсутствует скобка ), закрывающая параметр switch.
  2. Вы не избегаете своих апострофов (') в слове "это".

Исправленный код:

jQuery('#main input').blur(function() {
    switch(jQuery(this).attr('name')) { // Added a )
        case 'email':
            jQuery(this).val('That\'s you e-Mail adress.'); // Escaped the '
            break;
        case 'nickname':
            jQuery(this).val('That\'s your nickname.'); // Escaped the '
            break;
    }
});

Обновление:

Если вы не знакомы с экранированием строк в JavaScript (например, со словом That's выше), взгляните на вопрос переполнения стека: Выход из строки в JavaScript

...