我一直在尝试将一个变量从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){
...
}
});
}
});
});
答案 0 :(得分:1)
答案 1 :(得分:0)
首先将id属性添加到textarea,如下所示。
<textarea name="text1" id="text1" cols="90" rows="12" class="txtclassic" ></textarea>
现在可以像这样访问
var text = $('#text1').val();;
答案 2 :(得分:0)
为什么不使用jQuery的serialize()函数?
将所有输入控件放在<form>
标记之间,给它一个id,然后调用该元素上的serialize函数
<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”类,如果是这样,它将获取它找到的第一个并尝试获取其值(如果它不是输入控件,它将不会返回任何内容)