2012-01-03 2 views
0

У меня хорошая проверка значения по умолчанию, и клиент хочет добавить дополнительные функции к событию onBlur. проверка по умолчанию - глобальная и работает нормально. новая функциональность требует, чтобы некоторые новые значения были переданы новой функции. если бы не это, я бы просто применил его к проверке по умолчанию и делал это.Можете ли вы создать несколько функций в одном и том же событии onBlur?

Мой вопрос: могу ли я сделать подобное и у вас есть оба огня? что было бы лучше?

ПО УМОЛЧАНИЮ-CHECK

$(document.body).getElements('input[type=text],textarea,tel,email').addEvents ({ 
    'focus' : function(){ 
     if (this.get('value') == this.defaultValue) 
     { 
      this.set('value', ''); 
     } 
    }, 
    'blur' : function(){ 
     if (this.get('value') == '') 
     { 
      this.set('value', (this.defaultValue)); 
     } 
    } 
}); 

ADDED ФУНКЦИОНАЛЬНОСТЬ

<input type='text' id='field_01' value='default data' onBlur='driveData(event, variableForThisField, this.value);'>

идея заключается в том, чтобы обрабатывать значения по умолчанию, как обычно, но огонь новую функцию, когда значения на месторождении будут введены. Мне кажется, что нужно стрелять первым, но как !?

и, опять же, поскольку значения прошли поле , я не могу просто сбросить его в глобальную функцию проверки по умолчанию.

надеюсь это имеет смысл.

WR!

+0

звучит так, как будто вы действительно нуждаетесь в 'заполнителе =' HTML5 FUNC с запасным вариантом для не HTML5 браузеров. это позволит вам иметь дело со значением по умолчанию и настраиваемыми валидаторами в соответствии с обычным. посмотрите здесь, на плагин, который я написал: https://github.com/DimitarChristoff/mooPlaceholder и предоставленный jsfiddle. есть много других подобных плагинов на кузнице mootools. –

+0

@ Dimitar: не удалось загрузить вашу ссылку. :(, но я буду смотреть на него для дальнейшего использования. :) Большое вам спасибо! : D WR! – WhiteRau

ответ

1

Просто сохраните пользовательскую переменную в custom data attribute. Не технически соответствуют стандарты [в HTML 4], но это работает:

<input type='text' id='field_01' value='default data' data-customvar="variableForThisField"> 

$(document.body).getElements('input[type=text],textarea,tel,email').addEvents ({ 
    'focus' : function(){ 
     if (this.get('value') == this.defaultValue) 
     { 
      this.set('value', ''); 
     } 
    }, 
    'blur' : function(){ 
     if (this.get('value') == '') 
     { 
      this.set('value', (this.defaultValue)); 
     } else { 
      driveData(this.get('value'), this.get('data-customvar')); 
     } 
    } 
}); 

скрипка: http://jsfiddle.net/QkcxP/6/

+0

ring-a-ding-ding, конечно! Мне нравится, когда правильный ответ просто «щелкает», когда вы его видите! :) спасибо @primatology. кажется таким очевидным сейчас ... WR! – WhiteRau

+0

Без проблем, @WhiteRau! Рад помочь! :) – benesch

0

Я думаю, вы используете Mootools? Я не совсем понимаю синтаксис, но я создал JSFiddle и, похоже, работает с Mootools, а не с другими библиотеками.

Вот скрипку я создал, чтобы проверить: http://jsfiddle.net/NDTsz/

Ответ, казалось бы, да - конечно, в Chrome, но я верю в каждом браузере.

Смежные вопросы