发送ajax而不提交表单(onchange)

问题描述 投票:0回答:1

我的页面中有两个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>
}
javascript ajax asp.net-mvc
1个回答
0
投票

您可能在 ajax 调用中缺少 dataType 参数。尝试将 dataType: 'json' 添加到您的 ajax 调用中

© www.soinside.com 2019 - 2024. All rights reserved.