2015-03-26 2 views
0

У меня есть JQuery скрипт:JQuery ясно ввода, текстовое поле текст на фокус с динамически добавленных входов

$("input:not(':input[type=button], :input[type=submit], :input[type=reset]'), textarea").each(function() { 

var Input = $(this); 
var default_value = Input.val(); 

$(Input).on("focus", function() { 
    if(Input.val() == default_value) Input.val(""); 
}).on("blur", function() { 
    if(Input.val().length == 0) Input.val(default_value); 
}); 

}); 

Сво работает нормально, если входы уже на HTML, но как сделать эту работу на динамически добавляемых входов?

Первая идея состояла в том, чтобы изменить:

$(Input).on("focus", function() 

в

$(document).on("focus", Input, function() 

, но не повезло.

UPDATE

Я думаю, я нашел способ заставить его работать должным образом на любых входов:

$(document).on("focus", "input:not(':input[type=button], :input[type=submit], :input[type=reset]'), textarea", function(e) { 
if (e.target.value == e.target.defaultValue) { 
    e.target.value = ""; 
} 
}).on("blur", "input:not(':input[type=button], :input[type=submit], :input[type=reset]'), textarea", function(e) { 
if (e.target.value == "") { 
    e.target.value = e.target.defaultValue; 
} 
}); 
+0

необходимо положить его после создания новый элемент ... вы можете поделиться, как это делается. –

+0

Нажмите ссылку «Добавить» и сосредоточьтесь на новых входах: http://jsfiddle.net/r3ag5bL8/1/ Только первый вход удаляет текст в фокусе. – Tomas

+0

http://jsfiddle.net/arunpjohny/h3arccea/3/? –

ответ

0

Я думаю, что это то, что вы после:

$(".url_add").on("click", function (e) { 
    $(this).prev(".elements").clone().insertBefore(this); 
    e.preventDefault(); 
}); 
var default_value = $('input').val(); 
$(document).on("focus", 'input', function() { 
    if ($(this).val() == default_value) $(this).val(""); 
}).on("blur", 'input', function() { 
    if ($(this).val().length == 0) $(this).val(default_value); 
}); 

jsFiddle example

+0

Этот способ полностью удаляет значение с новых входов, если вы фокусируетесь и нажимаете, не вводя никакого текста. – Tomas

+0

Вы правы. Это странно, похоже, что я оставил $ (this) в ответе. Обновлено. – j08691

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

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