Пожалуйста, прочтите мой ответ и на этот вопрос - действительно нет причин звонить $('#input-field-id')дважды ... Хотя очень простой ответ - +1
gnarf
2
Я чувствую, что должна быть функция, которая увеличивает значение ввода, как вы можете с innerHTML.
Blue Sheep
109
Есть два варианта. Подход Аймана самый простой, но я бы добавил к нему одно дополнительное замечание. Вам действительно следует кэшировать выбор jQuery, нет причин вызывать $("#input-field-id")дважды:
var input = $("#input-field-id");
input.val( input.val()+"more text");
Другой вариант .val()также может принимать функцию в качестве аргумента. Это дает то преимущество, что легко работать с несколькими входами:
$("input").val(function( index, val ){return val +"more text";});
Я не могу добавить заполнитель в поле поиска и хотел бы использовать его, а затем очистить поле, когда пользователь помещает курсор в поле поиска. Это выполнимо?
// 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')
Ну, создавая этот пример, я как-то немного запутался. " ValueText " vs> Current NodeText <Не .val()должен работать с данными атрибута value ? Во всяком случае, я и вы, возможно, рано или поздно это проясним.
Добавляет ли это что-то новое, чтобы лучше ответить на вопрос? Я понимаю, что вы просто делаете расширение, но на этот вопрос уже довольно давно ответили. Просто хочу убедиться, что качество SO поддерживается.
Кевин Браун,
1
Спасибо за заботу - мне это нравится. Но да, вы правы, здесь не так много нового, суть остается прежней. Однако, переваривая текущие ответы, я почувствовал, что можно немного поработать над стилем и реализацией. Сначала я проверил, можно ли отредактировать какой-то пост, но в конце концов решил, что лучше сделать новый. Итак, что нового: * Вырезанное можно запустить. * Расширение очень помогает в написании самодокументируемого кода, не отвлекая при этом слишком много от сути.
Наду,
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>
Ответы:
источник
$('#input-field-id')
дважды ... Хотя очень простой ответ - +1innerHTML
.Есть два варианта. Подход Аймана самый простой, но я бы добавил к нему одно дополнительное замечание. Вам действительно следует кэшировать выбор jQuery, нет причин вызывать
$("#input-field-id")
дважды:Другой вариант
.val()
также может принимать функцию в качестве аргумента. Это дает то преимущество, что легко работать с несколькими входами:источник
Если вы планируете использовать добавление более одного раза, вы можете написать функцию:
После вы можете просто назвать это:
источник
Вы, вероятно, ищете val ()
источник
Ну, создавая этот пример, я как-то немного запутался. " ValueText " vs> Current NodeText <Не
.val()
должен работать с данными атрибута value ? Во всяком случае, я и вы, возможно, рано или поздно это проясним.Однако сейчас дело в следующем:
При работе с данными формы используйте .val () .
При работе с данными, в основном предназначенными только для чтения, между тегами используйте .text () или .append () для добавления текста.
источник
Вывод
источник