是否可以使用Ajax提交textarea数据?

时间:2015-09-16 10:34:56

标签: javascript jquery html ajax

我尝试提交输入数据,但我想提交<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代码有问题吗?

5 个答案:

答案 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以发布网址