我尝试提交输入数据,但我想提交<textarea>
而不是<input>
的数据。我的原始代码:
<form action="/index/output" method="POST">
<input type="text" name="text_box" id="t">
</form>
<script>
$('#t').keyup(function(){
$.ajax({
url : '/index/output',
data : {
text_box : $('input:text').val()
},
success : function(html) {
$('#result').html(html);
}
})
})
</script>
<div id="result"> </div>
我将<input>
更改为<textarea>
<form action="/index/output" method="POST">
<textarea name="text_box" id="t"> </text>
</form>
但它效果不好......
我的ajax代码有问题吗?
答案 0 :(得分:6)
而不是
$('input:text').val()
使用
$('textarea').val()
或者,更好的是,按ID:
选择它$('#t').val()
答案 1 :(得分:3)
问题是您的选择器input:text
表示&#34;输入文本类型&#34;而您的<textarea>
不是<input>
。
只需更改选择器即可实际匹配元素。
$('textarea')
答案 2 :(得分:1)
您的问题与您的ajax代码无关。相反,你的jQuery-Selector并不是针对textarea元素,而是仅针对输入元素。要解决此问题,您可以告诉您的ajax调用提交整个表单或修复您的选择器。 选择器将如下所示:
$('textarea').val()
或者像这样
$('#t').val();
答案 3 :(得分:0)
是的,你可以。由于您已将ID定义为t
,因此您可以使用以下ID进行访问:
var textData = $('#t').val();
将其发送到您想要发送的地方。
答案 4 :(得分:-1)
问题是你的选择器,
$(&#39;输入:文字&#39;)=&gt;意味着选择文本框
所以请使用而不是
$('textarea') => means select textarea
并且不要使用val()方法因为texzrea包含大量字符所以要使用html()方法从textarea元素中获取值
以及
contentType: "text/plain; charset=utf-8",
如果您使用的是asp.net,则需要将contenttype导入ajax以发布网址