如何在下面的代码中传递textarea数据?

时间:2018-02-11 07:38:00

标签: javascript php jquery json laravel

我正在提交表单,并且在我的表单中我发送文本区域和文本框数据,但我没有获得文本区域详细信息。

那么如何在下面的代码中传递文本区域细节呢?

$(document).on('click','#contactsave',function(e){

        e.preventDefault(); //keeps the form from behaving like a normal (non-ajax) html form
        var $form = $("#contactForm");
        var url = $form.attr('action');
        var formData = {};

        //submit a POST request with the form data
        $form.find('input').each(function(){
            formData[ $(this).attr('name') ] = $(this).val();
        });

        $('.blockui').show();   
        $('.overlayblock').show();
        $.post(url, formData, function(response)
        {
             var obj = $.parseJSON(response);

             if(obj.status == 1){
                $(".succmsg").html(obj.message);
             }else{
                $(".succmsg").html(obj.message);
             }
             $("#description").val(''); $("#emails").val(''); $("#mobile").val(''); $("#name").val('');
             setTimeout( function(){$('.succmsg').html('');} , 4000);
             $('.blockui').hide();  
             $('.overlayblock').hide();
        }).fail(function(response)
        {
            $.each(response['responseJSON'],function(value, index){
                $("#"+value).parent(".form-group").addClass("has-error");
                $("#"+value).siblings(".error").html(index);
            });
            $('.blockui').hide();   
            $('.overlayblock').hide();
        });

    });

3 个答案:

答案 0 :(得分:1)

  $(document).on('click','#contactsave',function(e){

    e.preventDefault(); //keeps the form from behaving like a normal (non-ajax) html form
    var $form = $("#contactForm");
    var url = $form.attr('action');
    var formData = {};

    //submit a POST request with the form data
    $form.find('input,textarea').each(function(){
        formData[ $(this).attr('name') ] = $(this).val();
    });

或者

  var formData = $('#contactForm').serialize();

试试这个

答案 1 :(得分:0)

因为您只获得input类型的每个语句

$form.find('input').each(function(){
        formData[ $(this).attr('name') ] = $(this).val();
});

使用jquery的serialize()函数,然后将发送所有元素的值

var formData = $("#contactForm").serialize();

$.post({

    data: formData ,
    dataType: "json",
    success: function(data) {

    },
    error: function() {
    }
});

答案 2 :(得分:0)

你可以试试这个:

$('form').serialize()

通过这个例子:

<form>
 <input type="radio" name="foo" value="1" checked="checked" />
 <input type="radio" name="foo" value="0" />
 <input name="bar" value="xxx" />
 <select name="this">
  <option value="hi" selected="selected">Hi</option>
  <option value="ho">Ho</option>
</form>

这会产生:"foo=1&bar=xxx&this=hi"