.val () и .text () не работают? - PullRequest
       26

.val () и .text () не работают?

1 голос
/ 15 сентября 2011

Я хочу отправить содержимое div через php и тег формы. У меня есть 2 div с этими классами:

.simpleCart_items
.simpleCart_total

Я хочу извлечь содержимое из этих элементов и вставить их содержимое во входные или текстовые области, а затем отправить форму в мой php-файл.

Я написал этот код JQuery:

$('#shopform').submit(function(){
  var items = $('.simpleCart_items').text();
  var tprice = $('.simpleCart_total').text();
  $('#itemsinfo').val(items);
  $('#totalprice').val(tprice);
});

и это мои входные данные:

<textarea id="itemsinfo" style="width:320px; height:160px"></textarea>

<input type="text" id="totalprice"/>

но это не работает. Содержимое не перемещалось во входные теги.

Ответы [ 5 ]

2 голосов
/ 15 сентября 2011

Ваш код отлично работает, когда я помещаю его на страницу:

http://jsfiddle.net/Guffa/krYQh/

Когда вы нажимаете кнопку отправки, поля заполняются данными.(Я добавил return false в обработчик событий отправки, чтобы форма не публиковалась.)

Некоторые возможные ошибки в вашем коде:

  • Вы использовали class=".simpleCart_items" вместоиз class="simpleCart_items".
  • Форма не имеет id="shopform".
  • Вы должны использовать идентификаторы shopform, itemsinfo или totalprice для любых других элементов.
2 голосов
/ 15 сентября 2011

Это должно быть что-то еще в вашем HTML или скрипте, который вы нам показываете, потому что когда я настраиваю простой тест с использованием вашего кода, он отлично работает здесь: http://jsfiddle.net/jfriend00/7q6DP/.

Это прекрасно работает для меня(в Chrome, Firefox, Safari и IE):

HTML:

<button id="submitForm">Submit</button>
<div class="simpleCart_items">simpleCart items text</div>
<div class="simpleCart_total">simpleCart total</div>

<textarea id="itemsinfo" style="width:320px height:160px"></textarea><br>
<input type="text" id="totalprice"/>

Javascript (после загрузки страницы):

$('#submitForm').click(function(){
  var items = $('.simpleCart_items').text();
  var tprice = $('.simpleCart_total').text();
  $('#itemsinfo').val(items);
  $('#totalprice').val(tprice);
});

Пожалуйста, покажите оставшуюся часть кода и HTML.

Что нужно проверить:

  1. Есть ли какие-либо ошибки JavaScript, отображаемые в консоли ошибок или вконсоль отладчика?
  2. Вы инициализируете свои обработчики событий после загрузки страницы?
  3. Отображаются ли ошибки javascript в консоли отладки при нажатии кнопки отправки?
  4. Ваш обработчик события submitForm вызывается?Если вы устанавливаете точку останова или помещаете предупреждение в их, это срабатывает?
  5. Можете ли вы установить точку останова в вашем обработчике отправки и посмотреть, что происходит со значениями элементов или tprice?
  6. Убедитесь, что имена ваших классов не имеют начального периода, когда вы помещаете их в свой HTML.Это должно быть class="simpleCart_items", а не class=".simpleCart_items".
0 голосов
/ 15 сентября 2011

Вы должны иметь возможность использовать .val () для получения значения для текстовых областей вместо использования .text ().

Попробуйте использовать оповещение (предметы); прежде чем устанавливать содержимое div, просто чтобы убедиться, что вы на самом деле получаете данные.

0 голосов
/ 15 сентября 2011

Полагаю, вам следует использовать .innerHTML вместо .text ()

0 голосов
/ 15 сентября 2011

Полагаю, вам следует использовать ".html ()" вместо ".text", как показано ниже.

  $('#shopform').submit(function(){   
  var items = $('.simpleCart_items').html();   
  var tprice = $('.simpleCart_total').html();   

    $('#itemsinfo').html(items);   
    $('#totalprice').val(tprice); 
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...