Por favor, leia minha resposta a esta pergunta também - Não há realmente nenhuma razão para ter que ligar $('#input-field-id')duas vezes ... Uma resposta muito simples - +1
gnarf
2
Acho que deve haver uma função que agrega valor a uma entrada, como você pode fazer com o innerHTML.
Blue Sheep
109
Existem duas opções. A abordagem de Ayman é a mais simples, mas eu acrescentaria uma nota extra a ela. Você realmente deve armazenar em cache as seleções do jQuery, não há razão para chamar $("#input-field-id")duas vezes:
var input = $("#input-field-id");
input.val( input.val()+"more text");
A outra opção .val()também pode ter uma função como argumento. Isso tem a vantagem de funcionar facilmente com várias entradas:
$("input").val(function( index, val ){return val +"more text";});
Não consigo adicionar espaço reservado a uma caixa de pesquisa e gostaria de usar isso e desmarcar a caixa quando o usuário colocar o cursor na caixa de pesquisa. Isso é viável?
// Define appendVal by extending JQuery
$.fn.appendVal =function(TextToAppend){return $(this).val(
$(this).val()+TextToAppend);};//_____________________________________________// And that's how to use it:
$('#SomeID').appendVal('This text was just added')
Bem, ao criar este exemplo, de alguma forma fiquei um pouco confuso. " ValueText " vs> Current NodeText <Não .val()deve ser executado nos dados do valor atributo de ? De qualquer forma, eu e você podemos esclarecer isso mais cedo ou mais tarde.
No entanto, o ponto por agora é:
Ao trabalhar com dados de formulário, use .val () .
Ao lidar com a maioria dos dados somente leitura entre a tag, use .text () ou .append () para acrescentar o texto.
Isso adiciona algo novo para responder melhor à pergunta? Eu entendo que você está apenas fazendo uma extensão, mas isso já foi respondido há algum tempo. Só quero ter certeza de que a qualidade do SO é mantida.
Kevin Brown de
1
Obrigado pelo carinho - eu gosto disso. Mas sim, você está certo, não há muitas novidades, a essência permanece a mesma. No entanto, ao digerir as respostas atuais, senti que poderia ser feito um pouco sobre o estilo e a implementação. Verifiquei primeiro se algumas das postagens poderiam ser editadas, mas no final achei melhor fazer uma nova. Então, o que há de novo: * Você pode executar o recortado. * A extensão ajuda muito na maneira de escrever código autodocumentado, sem distrair muito a essência.
Nadu
0
<!DOCTYPE html><html><head><title></title><scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script><styletype="text/css">*{font-family: arial;font-size:15px;}</style></head><body><buttonid="more">More</button><br/><br/><div>
User Name : <inputtype="text"class="users"/><br/><br/></div><buttonid="btn_data">Send Data</button><scripttype="text/javascript">
jQuery(document).ready(function($){
$('#more').on('click',function(x){var textMore ="User Name : <input type='text' class='users'/><br/><br/>";
$("div").append(textMore);});
$('#btn_data').on('click',function(x){var users=$(".users");
$(users).each(function(i, e){
console.log($(e).val());});})});</script></body></html>
Respostas:
fonte
$('#input-field-id')
duas vezes ... Uma resposta muito simples - +1innerHTML
.Existem duas opções. A abordagem de Ayman é a mais simples, mas eu acrescentaria uma nota extra a ela. Você realmente deve armazenar em cache as seleções do jQuery, não há razão para chamar
$("#input-field-id")
duas vezes:A outra opção
.val()
também pode ter uma função como argumento. Isso tem a vantagem de funcionar facilmente com várias entradas:fonte
Se você planeja usar o acréscimo mais de uma vez, convém escrever uma função:
Depois que você pode simplesmente chamá-lo:
fonte
Você provavelmente está procurando val ()
fonte
Bem, ao criar este exemplo, de alguma forma fiquei um pouco confuso. " ValueText " vs> Current NodeText <Não
.val()
deve ser executado nos dados do valor atributo de ? De qualquer forma, eu e você podemos esclarecer isso mais cedo ou mais tarde.No entanto, o ponto por agora é:
Ao trabalhar com dados de formulário, use .val () .
Ao lidar com a maioria dos dados somente leitura entre a tag, use .text () ou .append () para acrescentar o texto.
fonte
Resultado
fonte