Ответ 1
Вы пробовали val?
$("textarea#ExampleMessage").val(result.exampleMessage);
Я пытаюсь установить значение в поле textarea, используя jquery со следующим кодом:
$("textarea#ExampleMessage").attr("value", result.exampleMessage);
Проблема заключается в том, что после выполнения этого кода он не изменяет текст в текстовом поле?
Однако при выполнении alert($("textarea#ExampleMessage").attr("value"))
возвращается новое заданное значение?
Вы пробовали val?
$("textarea#ExampleMessage").val(result.exampleMessage);
Textarea не имеет атрибута значения, его значение происходит между тегами, т.е. <textarea>my text</textarea>
, это не похоже на поле ввода (<input value="my text" />
). Вот почему attr не работает:)
$("textarea#ExampleMessage").val()
в jquery просто магия.
Вы должны заметить, что тег textarea использует внутренний html для отображения и не в атрибуте значения, как тег ввода.
<textarea>blah blah</textarea>
<input type="text" value="blah blah"/>
Вы должны использовать
$("textarea#ExampleMessage").html(result.exampleMessage)
или
$("textarea#ExampleMessage").text(result.exampleMessage)
зависит от того, хотите ли вы отображать его как теги html или обычный текст.
Я думаю, что это должно сработать:
$("textarea#ExampleMessage").val(result.exampleMessage);
О, приходите на мальчиков! он работает только с
$('#your_textarea_id').val('some_value');
У меня был тот же вопрос, поэтому я решил попробовать его в текущих браузерах (мы полтора года спустя после этого вопроса), и это (.val
) работает
$("textarea#ExampleMessage").val(result.exampleMessage);
для
У меня была такая же проблема, и это решение не сработало, но работала с html
$('#your_textarea_id').html('some_value');
На android .val
и .html
не работает.
$('#id').text("some value")
выполнил эту работу.
Есть проблема: мне нужно сгенерировать html-код из содержимого данного div. Затем я должен поместить этот необработанный html-код в текстовое поле. Когда я использую функцию $(textarea).val() следующим образом:
$(textarea).val( "some html like < input type = 'text' value = '' style =" background: url ('http://www.w.com/bg.gif') repeat-x center; "/" > bla bla ");
или
$( '# idTxtArGenHtml'). Вал ( $('idDivMain'). html());
У меня была проблема с некоторым специальным символом (и "), когда они находятся между к. Но когда я использую функцию: $ (textarea).html() текст в порядке.
Вот пример формы:
<FORM id="idFormContact" name="nFormContact" action="send.php" method="post" >
<FIELDSET id="idFieldContact" class="CMainFieldset">
<LEGEND>Test your newsletter» </LEGEND>
<p>Send to à : <input id='idInpMailList' type='text' value='[email protected]' /></p>
<FIELDSET class="CChildFieldset">
<LEGEND>Subject</LEGEND>
<LABEL for="idNomClient" class="CInfoLabel">Enter the subject: * </LABEL><BR/>
<INPUT value="" name="nSubject" type="text" id="idSubject" class="CFormInput" alt="Enter the Subject" ><BR/>
</FIELDSET>
<FIELDSET class="CChildFieldset">
<INPUT id="idBtnGen" type="button" value="Generate" onclick="onGenHtml();"/>
<INPUT id="idBtnSend" type="button" value="Send" onclick="onSend();"/><BR/><BR/>
<LEGEND>Message</LEGEND>
<LABEL for="idTxtArGenHtml" class="CInfoLabel">Html code : * </LABEL><BR/>
<span><TEXTAREA name="nTxtArGenHtml" id="idTxtArGenHtml" width='100%' cols="69" rows="300" alt="enter your message" ></TEXTAREA></span>
</FIELDSET>
</FIELDSET>
</FORM>
И код javascript/jquery, который не работает для заполнения текстового поля:
function onGenHtml(){
$('#idTxtArGenHtml').html( $("#idDivMain").html() );
}
Завершите решение:
function onGenHtml(){
$('#idTxtArGenHtml').html( $("#idDivMain").html() );
$('#idTxtArGenHtml').parent().replaceWith( '<span>'+$('#idTxtArGenHtml').parent().html()+'</span>');
}
Трюк обертывает вашу текстовую область тегом span, чтобы помочь с помощью функции replaceWith. Я не уверен, что он очень чист, но он отлично работает и добавляет исходный HTML-код в текстовое поле.
Текстовая область не имеет значения. jQuery.html() работает в этом случае
$("textarea#ExampleMessage").html(result.exampleMessage);
textarea не сохраняет значения как
<textarea value="someString">
вместо этого он сохраняет значения в этом формате:
<textarea>someString</textarea>
Итак, attr("value","someString")
получает ваш результат:
<textarea value="someString">someOLDString</textarea>.
попробуйте $("#textareaid").val()
или $("#textareaid").innerHTML
.
Это работает для меня.... Я построил стену с лицевой книгой...
Вот основа моего кода:
// SETS MY TEXT AREA TO EMPTY (NO VALUE)
$('textarea#message_wall').val('');
Я пробовал с .val()
.text()
.html()
и имел некоторые ошибки, используя jQuery для чтения или установки значения textarea... я endup, используя собственный js
$('#message').blur(function() {
if (this.value == '') { this.value = msg_greeting; }
});
Мы можем использовать методы .val() или .text() для установки значений. нам нужно поместить значение внутри val() подобно val ( "hello" ).
$(document).ready(function () {
$("#submitbtn").click(function () {
var inputVal = $("#inputText").val();
$("#txtMessage").val(inputVal);
});
});
Посмотрите пример здесь: http://www.codegateway.com/2012/03/set-value-to-textarea-jquery.html
Чтобы установить значение textarea закодированного HTML (чтобы показать как HTML), вы должны использовать .html( the_var )
, но, как уже упоминалось, если вы попытаетесь установить его снова, он может (и, вероятно) не работать.
Вы можете исправить это, опустошив textarea .empty()
, а затем снова установите его с помощью .html( the_var )
Здесь работает JSFiddle: https://jsfiddle.net/w7b1thgw/2/
jQuery(function($){
$('.load_html').click(function(){
var my_var = $(this).data('my_html');
$('#dynamic_html').html( my_var );
});
$('#clear_html').click(function(){
$('#dynamic_html').empty();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<textarea id="dynamic_html"></textarea>
<a id="google_html" class="load_html" href="#" data-my_html="<a href="google.com">google.com</a>">Google HTML</a>
<a id="yahoo_html" class="load_html" href="#" data-my_html="<a href="yahoo.com">yahoo.com</a>">Yahoo HTML</a>
<a id="clear_html" href="#">Clear HTML</a>
Вы даже можете использовать приведенный ниже фрагмент.
$("textarea#ExampleMessage").append(result.exampleMessage);
Принятый ответ работает на меня, но только после того, как я понял, что должен выполнить мой код после завершения загрузки страницы. В этой ситуации inline script не работал, я думаю, потому что #my_form еще не была загружена.
$(document).ready(function() {
$("#my_form textarea").val('');
});
Когда у меня был JQuery v1.4.4 на странице, ни одна из них не работала. При вводе JQuery v1.7.1 на мою страницу он работал наконец. Так что в моем случае это была моя версия JQuery, которая вызывала проблему.
id == > textareaid
======================
var script1 = document.createElement("script");
script1.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
document.body.appendChild(script1);
var script2 = document.createElement("script");
script2.type = "text/javascript";
script2.innerHTML = "var $jq171 = $.noConflict();";
document.body.appendChild(script2);
$jq171('#textareaid').val('xxx');
Просто используйте textarea Id по типу типа:
$("textarea#samplID").val()
Использование $("textarea#ExampleMessage").html('whatever you want to put here');
может быть хорошим способом, потому что .val()
может иметь проблемы при использовании данных из базы данных.
Например:
Поле базы данных с именем description
имеет следующее значение asjkdfklasdjf sjklñadf
. В этом случае использование .val() для присвоения значения textarea может быть утомительным заданием.
Просто используйте этот код, и вы всегда будете иметь значение:
var t = $(this);
var v = t.val() || t.html() || t.text();
Итак, он проверит val() и установит его значение. Если val() получает пустую строку, NULL, NaN o.s. он будет проверять html(), а затем на text()...
Это работает:
var t = $('#taCommentSalesAdministration');
t.val('Hi');
Помните, что сложная часть здесь - убедиться, что вы используете правильный идентификатор.
И прежде чем использовать идентификатор, убедитесь, что вы положили #
перед ним.
Я думаю, что отсутствует один важный аспект:
$('#some-text-area').val('test');
работает только при наличии селектора идентификаторов (#)
для селектора классов существует возможность использовать собственное значение, например:
$('.some-text-area')[0].value = 'test';