.val()和.text()不起作用?

时间:2011-09-15 18:58:19

标签: javascript

我想通过php和表格标签发送div内容。我有2个这些类的div:

.simpleCart_items
.simpleCart_total

我想从这些div中获取内容并将其内容插入input或textareas,然后将表单提交到我的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 个答案:

答案 0 :(得分:2)

您在向我们展示的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"

答案 1 :(得分:2)

当我把它放在页面中时,你的代码工作得很好:

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

单击“提交”按钮时,将使用数据填充字段。 (我在提交事件处理程序中添加了return false只是为了防止表单发布。)

代码中可能存在一些错误:

  • 您使用了class=".simpleCart_items"代替class="simpleCart_items"
  • 表单没有id="shopform"
  • 您已对任何其他元素使用ID shopformitemsinfototalprice

答案 2 :(得分:0)

我猜你应该使用“.html()”代替“.text”,如下所示。

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

    $('#itemsinfo').html(items);   
    $('#totalprice').val(tprice); 
  });

答案 3 :(得分:0)

我想你应该使用.innerHTML而不是.text()

答案 4 :(得分:0)

您应该能够使用.val()来获取文本区域的值,而不是使用.text()。

尝试使用警报(项目);在设置div的内容之前,只是为了确保您实际获取数据。