2014-11-12 5 views
0

проверить эту скрипку: http://jsfiddle.net/7vcZT/JQuery: заполнить текстовое поле со значением пролете

Как вы можете видеть, что это работает, но при нажатии на текст и он превращается в текстовое поле есть две проблемы:

  1. Старый текст не отображается в текстовом поле и
  2. Если вы случайно нажмете случайно, не введя ничего, он полностью исчезнет, ​​а не покажет старый текст.

Итак, (когда человек нажимает текст и появляется текстовое поле), как я могу получить значение SPAN для показа в текстовом поле?

Спасибо!

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

$(".editDIV").click(function(){ 
    $(this).find("span")[0].style.display="none"; 
    $(this).find("input")[0].style.display="block"; 
    $(this).find("input")[0].focus(); 
}); 

$(".editINPUT").blur(function(){ 
    $(this)[0].style.display="none"; 
    $(this).prev()[0].innerText=$(this)[0].value; 
    $(this).prev().show(); 
}) 

ответ

2

Вы можете взять текст из диапазона с .text() и вставить его в значение входного .val()

http://jsfiddle.net/7vcZT/16/

$(".editDIV").click(function(){ 
    $(this).find("input").val($(this).find('span').text()); 
    $(this).find("span")[0].style.display="none"; 
    $(this).find("input")[0].style.display="block"; 
    $(this).find("input")[0].focus(); 
}); 
+0

Спасибо! Это сработало. Я знаю, что я должен был добавить это к вопросу, но как вернуть его к исходному тексту, если пользователь удалит текст и затем щелкнет? – Ryan

+0

Хорошо, не нужно, понял это :) – Ryan

2

Try:

$(".editDIV").click(function() { 
    $(this).find("span").toggle(); 
    $(this).find("input").val($(this).find('span').text()).toggle().focus(); 
}); 
$(".editINPUT").blur(function() { 
    $(this).hide().prev().text($(this).val()).show(); 
}) 

jsFiddle example

+0

Спасибо, проголосовало! Но как Jquery noob, я думаю, что я пойду с решением других парней, потому что это кажется более сложным для понимания :( – Ryan

+1

Дайте мне знать, что вы считаете сложным, и я могу это объяснить. – j08691

+0

Я очень ценю это, его просто то, что я я начинаю с jQuery, и код, который я опубликовал, легче понять (для меня) с быстрым взглядом. Хотя я думаю, что ваш код, вероятно, более изящный и лучше, постоянная цепочка посылает мой разум в немного тиззи! – Ryan

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