使用从Laravel中的AJAX插入的数据值提交表单

时间:2018-02-23 04:17:54

标签: php jquery ajax post laravel-5

我有以下html部分:

<div class="box-body" style="display:none;" id="claimFreightDetails">
                    <input type="text" disabled class="form-control" id="pulledProNumber" name="pulledProNumber"><br>
                    <strong>Origin Information</strong><br>
                    <textarea disabled class="form-control" id="claimFreightOrigin" name="claimFreightOrigin"></textarea><br>
                    <strong>Consignee Information</strong><br>
                    <textarea disabled class="form-control" id="claimFreightConsignee" name="claimFreightConsignee"></textarea><br>
                    <strong>Weight</strong>
                    <input type="text" disabled class="form-control" id="claimWeight" name="claimWeight"><br>
                    <strong>Pieces Count</strong><br>
                    <input type="text" disabled class="form-control" id="claimPieces" name="claimPieces"><br>
            </div>

现在,我有一个AJAX POST请求,其中响应将返回的数据插入到这些字段和textareas中:

<script>
 $(document).on('click', '#pullDetails', function() {
        $('#freightBillDetails').removeClass('hidden'); 
        $.ajax({
            type:'POST',
            url: '/carrier/claims/pullDetails',
            data: {
                num: $('input[name=proNumber]').val(),
                _token: $('input[name=_token]').val()},
            dataType: 'json',
            success: function(data) {
                if(data.details != undefined) {
                        console.log('success');
                        var results = JSON.parse(data.details);
                            $('#pulledProNumber').val(results.SearchResults[0].SearchItem);
                            $('#claimWeight').val(results.SearchResults[0].Shipment.Weight);
                            $('#claimPieces').val(results.SearchResults[0].Shipment.Pieces);
                            $("#claimFreightOrigin").html(results.SearchResults[0].Shipment.Origin.Name + '&#013;&#010;'+ results.SearchResults[0].Shipment.Origin.Address1 +'('+results.SearchResults[0].Shipment.Origin.Address2+')&#013;&#010;'+ results.SearchResults[0].Shipment.Origin.City + ', '+ results.SearchResults[0].Shipment.Origin.State + ' '+ results.SearchResults[0].Shipment.Origin.PostalCode);
                            $("#claimFreightConsignee").html(results.SearchResults[0].Shipment.Consignee.Name + '&#013;&#010;'+ results.SearchResults[0].Shipment.Consignee.Address1 +'('+results.SearchResults[0].Shipment.Consignee.Address2+')&#013;&#010;'+ results.SearchResults[0].Shipment.Consignee.City + ', '+ results.SearchResults[0].Shipment.Consignee.State + ' '+ results.SearchResults[0].Shipment.Consignee.PostalCode);

                            $('#openInvoicesOverlay').html('');
                            $('#openInvoicesOverlay').removeClass('overlay');

                            $('#claimFreightDetails').show();

                    }else{
                        console.log('failed');
                        console.log(data);
                        console.log(data.details['SearchResults'].SearchItem); 
                    }
            },
            error: function(data) {
                console.log('error');
                console.log(data);
            }
        });
    });
</script>

问题是,当我提交围绕此的表单(更多字段,此部分只是通过第三方的API)时,所有数据字段除了在AJAX包含在整个表单的POST请求中。

4 个答案:

答案 0 :(得分:1)

使用此

获取ajax响应后,还需要删除disabled属性

echo "something=123" | sed -r 's/(something=)([-\d.]*)/\1\20/' something=0123

这是你的解决方案:

$('.YourDisabledInput').prop("disabled", false);

答案 1 :(得分:0)

只需将.val更改为.attr('value'),因为laravel正在从DOM中撤出,而jQuery .val并没有反映出来。

您可以查看此链接 jQuery changing form values not affecting the DOM

您也可以在jQuery website

上进行测试

答案 2 :(得分:0)

禁用输入字段不会随表单一起提交。这是残疾人的行为。

答案 3 :(得分:0)

我猜你使用错误的名字输入。 没有输入名称&#34; proNumber&#34;。在HTML中它是&#34; pullingProNumber&#34;。 而且该领域也被禁用。 请更新您的代码,看看是否能解决问题。