当调整到移动设备时,数据表不能向PHP提交AJAX表单


DataTables can't submit AJAX form to PHP when resized to mobile

我有一个问题,当提交表单数据使用AJAX调整屏幕到移动设备。当你将页面大小调整为桌面大小时,一切都可以正常工作。

我使用jQuery数据表,我有一个按钮上的每一行来编辑表单。当页面没有调整大小和数据表全屏时,所有的工作都很好,只要我调整页面的移动和平板电脑大小,数据表在左边创建一个绿色的"加"图标来扩展表,但是当我点击编辑按钮时,我得到一个错误Invalid Ajax Request和控制台Uncaught SyntaxError: Unexpected token <

这同样适用于大屏幕,但不适用于手机和平板电脑。

我使用PHP MVC,这里是代码:

我的jQuery函数:
$(function () {
    $("form#editEmailTemplate").on('submit', function (e) {
        var postData = $(this).serialize();
        var formURL = $(this).attr("action");
        var formMethod = $(this).attr("method");
        $.ajax({
            url: formURL,
            type: formMethod,
            data: postData,
            mimeType: "multipart/form-data",
            scriptCharset: "UTF-8",
            ContentType: 'html',
            dataType: 'html',
            success: function (data, textStatus, jqXHR) {
                var returnedData = JSON.parse(data);
                for (var i = 0; i < returnedData.length; i++) {
                    $('#response').empty();
                    $("#DataTableEmails_wrapper").hide();
                    $("#updateEmailTemplate").show();
                    $('#emailid').val(returnedData[0][i].emailid);
                    $('.emailtitle').text(returnedData[0][i].title);
                    $('#emailsubject').val(returnedData[0][i].subject);
                    $('#emailtext').val(returnedData[0][i].textmessage);
                    $('#emailhtml').val(returnedData[0][i].htmlmessage);
                }
            },
            error: function (jqXHR, textStatus, errorThrown) {
                $('#response').html('<div class="alert alert-danger">Something went wrong !!! . Email tremplate has NOT  been  selected</div>');
                setTimeout(fade_out, 10000);
                function fade_out() {
                    $("#response").fadeOut().empty();
                }
            }
        });
        e.preventDefault(); //STOP default action
    });
});

HTML格式是:

<form class="ui segment error" role="form" method="post" accept-charset="UTF-8" 
    action="mail/editEmailTemplate/" id="editEmailTemplate">
    <input type="hidden" name="emailid" value="' . $value['emailid'] . '">
    <input type="image" name="submit" value="" src = "' . ICO . 'system/configure.png" 
        width="20" height="auto" title = "' . lang('BTN_EDIT_EMAIL_TEMPLATE_TOOLTIP') . '"/>
</form>

表单在所有屏幕尺寸上具有相同的结构和数据,因此在调整大小时不会改变。

有可能您的formURL返回一个未找到的HTML格式的404。当它这样做时,它将包含

<html></html>

不是有效的javascript,或者如果该文件是PHP并且其中有错误,它也会响应以'<'开头的HTML格式。因为这不是一个有效的响应,它将在遇到时中断。