我的页面中有两个ajax,一个工作正常,但另一个不工作。我尝试发送ajax post方法而不提交表单,仅使用onchange方法但不触发,我调试我的代码,它仅在重新加载页面时触发。
我还尝试修改触发更改方法的代码:
$('#sheets').onchange(function () {}
第一个运行良好的ajax:
<script>
$('#modal-set__btn').click(function (e) {
if (window.FormData !== undefined) {
var fileUpload = $('#file-input').get(0);
console.log(fileUpload);
var files = fileUpload.files;
var fileData = new FormData();
for (var i = 0; i < files.length; i++) {
alert(files[i].name + " and " + files[i]);
fileData.append(files[i].name, files[i]);
}
alert(files.length);
}
var url = '/' + 'Page/Inventory/Item/Index/fileUpload';
e.preventDefault();
$.ajax({
url: url,
type: 'POST',
contentType: false,
processData: false,
data: fileData,
success: function (response) {
var result = $(response).find("#tablecollection").html();
console.log('Response:', result);
$('#tablecollection').html(result);
},
error: function (xhr, status, error_m) {
alert('AJAX request failed +' + error_m);
}
});
tempArr.length = 0;
});
我的第二个ajax不起作用:
$('#sheets').on('change', function () {
var _sheet = $('#sheet_val').val();
var array = {
sheet: _sheet
};
$.ajax({
url: '/' + 'Page/Inventory/Item/Index/sheetData',
type: 'POST',
data: array,
success: function (response) {
console.log(response);
$('#tableData').html(result);
},
error: function (xhr, status, error_m) {
alert('AJAX request failed +' + error_m);
}
});
});
这是我的cshtml:
<div id="tablecollection">
@using System.Data
@if (ViewBag.DataSet != null && ViewBag.DataTable != null)
{
<label for="sheets">Choose a Sheet:</label>
<select name="sheets" id="sheets">
@{
DataTableCollection dataTables = ViewBag.DataTable;
foreach (DataTable item in dataTables)
{
<option id="sheet_val" value="@item.TableName">@item.TableName</option>
}
}
</select>
}
您可能在 ajax 调用中缺少 dataType 参数。尝试将 dataType: 'json' 添加到您的 ajax 调用中