2015-05-12 3 views
1

У меня есть HTML, как следующие:Как изменить метку ввода с помощью JQuery

<div class="task-manager"> 
    <label>Manager: <input type="text" value="" /></label> 
</div> 

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

$taskTemplate.find(".task-manager label").text("M123") 
+0

Это потому, что ваш входной тег внутри маркирующие – dreamweiver

ответ

2

Вы можете использовать:

$taskTemplate.find(".task-manager label").contents().get(0).nodeValue = "M123:"; 
+1

Никогда не знал, что это возможно, но его нелегко понять для новичков: / – dreamweiver

1

Вы должны изменить свой HTML код, потому что <input> поле внутри <label> и когда вы изменяете значение этой метки, это также перезапись и удаление поля ввода формы:

<div class="task-manager"> 
    <label>Manager:</label> <input type="text" value="" /> 
</div> 
+0

Nice, теперь скажите OP почему ... – DontVoteMeDown

+0

Невозможно ли без изменения HTML. Я могу получить значение, используя $ taskTemplate.find (". Task-manager label"). Contents(). Get (0) .nodeValue, но не может его изменить. спасибо за помощь –

+0

@DontVoteMeDown Да, потому что это верно, чтобы получить ввод, завернутый внутри метки –

1

Просто переместите вход тег вне тега label, потому что, когда вы обновляете текст своего ярлыка, его стирание содержимого метки (которое, очевидно, будет удалять входной тег inside), поэтому измените свой код следующим образом:

HTML код:

<div class="task-manager"> 
    <label for="title">Manager:</label> 
    <input type="text" id = 'title' value="" /> 
</div> 

JS код:

$('.task-manager label').text('Deputy Manager :'); 

Демо @ Jsfiddle: http://jsfiddle.net/dreamweiver/w6arp71x/

примечание/предложение: for атрибут добавлен маркировать, чтобы связать input до label по умолчанию

Днем Coding :)

+1

Это не работает. Для метки 'label' нужен атрибут' for' с идентификатором 'input'. –

+0

@Perplexor: ваше предложение, очевидно, сделает его лучшим кодом, но OP никогда не было этого раньше. в любом случае предложение принято :) – dreamweiver

+0

Но это предложение изменяет другие поведения на сайте. Вы не можете просто предположить, что OP в порядке с этим, хотя он действительно решит его первоначальную проблему. –

0
$taskTemplate.find(".task-manager label").contents().get(0).nodeValue = "M123:" 

это работал :)