Это правильный способ вызова текстовой области в jquery? - PullRequest
1 голос
/ 12 июня 2009

Этот синтаксис по какой-то причине не работает, и мне интересно, почему. Когда я предупреждаю значения на странице, я вижу все, кроме значения текстовой области. Я даже не получаю неопределенного.

var report  = $("textarea#report").val();

Вот мой HTML:

<textarea id="report" name="report" rows="25" cols="10" style="width:100%;height:200px;"><?php echo $_POST['report']; ?></textarea>

<form id="rpt" action="">

У меня есть этот код, с которым мне помог Паоло на прошлой неделе. Это начало кода jquery, в котором также есть код редактора

$(document).ready(function()
{
  $('.error').hide();
  WYSIWYG.attach('dfarReport', rpt);
  WYSIWYG_Core.addEvent(window, "load", function()
  {
    $('#Save').removeAttr('onclick').click(function()
    {

Я пытался добавить предложенный Джонатаном код к этому, но я получаю ошибки, когда я делаю это. Я также на всякий случай изменил «отчет» на что-то другое, но это тоже не помогло.

ЭТО РАБОТАЕТ !!!!!!!!!!!!!!!!!!!!

Чтобы заставить это работать. Я добавил следующее:

$(document).ready(function()
{
  $('.error').hide();
  WYSIWYG.attach('dfarReport', dfar);
  WYSIWYG_Core.addEvent(window, "load", function()
  {
    $('#Save').removeAttr('onclick').click(function()
    {
      WYSIWYG.updateTextArea('dfarReport');   <-------------- This is where it needs to go

Ответы [ 6 ]

2 голосов
/ 12 июня 2009

EDIT

var report  = $("textarea#report").val();

должно работать, однако, если вы ссылаетесь на него по id, вам не нужно также использовать textarea

var report  = $("#report").val();

будет эквивалентно

Кроме того, вы уверены в названии. нет опечаток?

Редактировать

с OpenWYSIWYG, используйте WYSIWYG.updateTextArea('report'); перед вызовом значения через javascript

0 голосов
/ 12 июня 2009

попробуйте использовать простой метод getElementById в javascript и посмотрите, работает ли он следующим образом:

предупреждение (. Document.getElementById () значение "Отчет");

, если это работает, у jquery могут быть проблемы, и вам может понадобиться отладить его, используя отладочную версию jquery.

0 голосов
/ 12 июня 2009

Я только что попробовал следующее в asp.net MVC 1.0, и он работал нормально: var rpt = $ ("# report"). val (); предупреждение (RPT);

Правильный способ - использовать идентификатор, как показано выше. Хотя $ ("textarea # report") тоже будет работать, но медленнее. $ ("# report") использует метод DOM getElementById и является быстрым способом получения ссылки на элемент. Пожалуйста, имейте в виду, что идентификаторы чувствительны к регистру.

0 голосов
/ 12 июня 2009

Я бы посоветовал вам запустить всю страницу через валидатор , так как похоже, что ваш код должен работать. Кроме того, вы делаете это внутри функции $ (document) .ready ()? Если нет, возможно, вы выполняете код до полной загрузки страницы.

0 голосов
/ 12 июня 2009

Кроме того, убедитесь, что у вас есть правильный идентификатор. Попробуйте:

alert($("textarea#report").length);

Также убедитесь, что вы не добавили идентификатор перед знаком #. Иногда я случайно нахожу то, что делаю:

<textarea id="#report"></textarea>

... вместо ...

<textarea id="report"></textarea>
0 голосов
/ 12 июня 2009

Этот синтаксис должен работать. Выполните пошаговое выполнение, используя firebug , чтобы выяснить, что вызывает сбой JavaScript Также см .:

jQuery получить текстовое сообщение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...