2012-05-20 1 views
3

Я хочу определить, пустое это поле или нет, а затем запустить на нем некоторый код.Обнаружить, если текстовое поле пуст или нет, а код запуска один раз, если только состояние не изменяется

Вопрос: как я могу запустить код только один раз ... а затем запустить его снова каждый раз, что изменяется состояние текстового поля во время одного focus

  • различных состояний будучи empty или not empty.

Для дальнейшей разработки:

(. Наиболее важная часть в этих jsfiddle, фигурируют в консоли)

  • Here is a jsfiddle of a code, который выполняет код каждый раз, когда вы keyup (Не то, что я хочу. Только начальный код.).

    $('input').on("keyup", function() { 
    
        var val = $(this).attr('value'), 
         previous = $(this).prev(); 
    
        if (val === '') { 
         console.log('Empty'); 
        } 
        else if (val !== '') { 
         console.log('Text'); 
        } 
    
    }); 
    
  • и Here is a jsfiddle of a code, который выполняет код, когда в фокусе (Это несколько близко к тому, что я хочу).

    Что все еще отсутствует, и что я не могу сделать, это в основном запустить код один раз каждый раз, когда состояние изменяется во время одного фокуса. Как я мог это сделать?

    $('input').on("focus", function() { 
    
        $('input').one("keyup", function() { 
    
         var val = $(this).attr('value'), 
          previous = $(this).prev(); 
    
         if (val === '') { 
          console.log('Empty'); 
         } 
         else if (val !== '') { 
          console.log('Text'); 
         } 
    
        }); 
    
    }); 
    

ответ

1

Вы должны использовать плагин называется JQuery Изменение текста из ZURB. Делает все, что вы хотите, и многое другое, а также имеет действие триггера под названием «hastext» и «notext», посмотрите на:

http://www.zurb.com/playground/jquery-text-change-custom-event

есть и демки там.

Я сделал это для вас (используя этот плагин).

ЖИВОЙ DEMO:

http://jsfiddle.net/oscarj24/UtwNz/

Надеется, что это помогает :-)

+0

Возможно, я бы использовал этот плагин, но я бы предпочел не делать этого. – Joonas

+0

@Lollero У вас есть особая причина? :-) –

+0

Ну, по понятным причинам. Я хочу иметь код, который делает то, что я хочу, и ничего больше и не меньше. – Joonas

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

  • Нет связанных вопросов^_^