1

我一直在尝试将一个变量从 php 发送到 AJAX,它以前可以工作,但突然就不行了。在过去的几个小时里,我一直在试图理解为什么,阅读有关没有运气的传递变量的信息。

由于某种原因,我无法将 textarea 放入我的 ajax 并将其发布到应用程序的其余部分。它给了我一个空警报,但var name = $("input[name='name']").val();警报正确。

这是html

<script type="text/javascript" src="http://example.com/_data/js/addreply.js"></script>
    <input type="hidden" name="hiddenid" value="6" />
    <div id="writeCommTxt" >
        <textarea name="text" cols="90" rows="12" class="txtclassic" ></textarea>                            
        <div id="writeCommCapt">
            <div id="writeCommCaptSub"><input type="submit" name="postcomm" value="Submit" class="subclassic" /></div>
        </div>
    </div>

这是一个单独文件中的 AJAX。

$(document).ready(function (){
$(".subclassic").click(function (){
    var id = $("input[name='hiddenid']").val();
    var name = $("input[name='name']").val();
    var text = $(".txtclassic").val(); //i also tried to add textarea['text'].val() with no success.
    var capt = $("input[name='captcha']").val();
    alert(text); //it alerts an empty window.
    if (name != "" && text != ""){
        $.ajax({
          type: 'POST',
          url: "/article/add_reply/" + id,
          data: {
              rename: name,
              retxt: text,
              recapt: capt
          },
          success: function (data){
           ...
          }
        });
    }
});
});
4

3 回答 3

1

演示

为什么不用身份证?在你的情况下,我猜是:

$('textarea[name="text"]').val();
于 2012-12-17T05:17:37.880 回答
0

首先将 id 属性添加到 textarea,如下所示。

<textarea name="text1" id="text1" cols="90" rows="12" class="txtclassic" ></textarea> 

现在像这样访问值

var text = $('#text1').val();;   
于 2012-12-17T05:21:31.230 回答
0

为什么不直接使用 jQuery 的serialize()函数呢?将所有输入控件放在<form>标签之间,给它一个 id,然后在该元素上调用序列化函数

<form id="myform">
        <input type="hidden" name="hiddenid" value="6" />
        <div id="writeCommTxt" >
            <textarea name="text" cols="90" rows="12" class="txtclassic" ></textarea>                            
        <div id="writeCommCapt">
            <div id="writeCommCaptSub"><input type="submit" name="postcomm" value="Submit" class="subclassic" /></div>
        </div>
</form>

然后在你的脚本中有

var myFormData = jQuery("#myform").serialize();
        $.ajax({
          type: 'POST',
          url: "/article/add_reply/" + id,
          data: myFormData,
          success: function (data){
           ...
          }
        });

至于最初的问题,您可能还有其他元素具有“txtclassic”类,如果是这样,它将抓住它找到的第一个元素并尝试获取它的值(如果它不是输入控件,它将不返回任何内容)

于 2012-12-17T05:21:51.557 回答