我有以下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 + '
'+ results.SearchResults[0].Shipment.Origin.Address1 +'('+results.SearchResults[0].Shipment.Origin.Address2+')
'+ 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 + '
'+ results.SearchResults[0].Shipment.Consignee.Address1 +'('+results.SearchResults[0].Shipment.Consignee.Address2+')
'+ 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请求中。
答案 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;。 而且该领域也被禁用。 请更新您的代码,看看是否能解决问题。