相关疑难解决方法(0)

使用Ajax以一种形式上传数据和文件?

我正在使用jQuery和Ajax为我的表单提交数据和文件,但我不确定如何以一种形式发送数据和文件?

我目前对这两种方法的做法几乎相同,但数据收集到数组的方式不同,数据使用.serialize();但文件使用= new FormData($(this)[0]);

是否可以将两种方法结合起来,以便能够通过Ajax以一种形式上传文件和数据?

数据jQuery,Ajax和html

$("form#data").submit(function(){

    var formData = $(this).serialize();

    $.ajax({
        url: window.location.pathname,
        type: 'POST',
        data: formData,
        async: false,
        success: function (data) {
            alert(data)
        },
        cache: false,
        contentType: false,
        processData: false
    });

    return false;
});

<form id="data" method="post">
    <input type="text" name="first" value="Bob" />
    <input type="text" name="middle" value="James" />
    <input type="text" name="last" value="Smith" />
    <button>Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)

文件jQuery,Ajax和html

$("form#files").submit(function(){

    var formData = new FormData($(this)[0]);

    $.ajax({
        url: window.location.pathname,
        type: 'POST',
        data: formData,
        async: false,
        success: function (data) {
            alert(data) …
Run Code Online (Sandbox Code Playgroud)

javascript forms ajax jquery

359
推荐指数
6
解决办法
50万
查看次数

Jquery 1.11.1 - 下载文件和其他回调

我有通过电话提交给django服务器的表格.

$("#my_form").submit();
Run Code Online (Sandbox Code Playgroud)

它通过执行以下代码返回xml文件:

content = some_data_retrieved_from_database_as_xml()
response = HttpResponse(content, content_type='text/xml')
response['Content-Disposition'] = 'attachment; '
response['Content-Disposition'] += 'filename=my_file.xml'
response['Content-Encoding'] = 'UTF-8'
return response
Run Code Online (Sandbox Code Playgroud)

谷歌浏览器只下载此文件,但我想注册额外的回调函数,称为myFunction(数据).

Chrome应下载此文件,然后调用myFunction(此xml文件).
我试过这段代码,但它不起作用:

$("#my_form").bind('ajax:complete', myFunction);
Run Code Online (Sandbox Code Playgroud)

我也尝试使用$ .post,但之后只调用了回调函数,不幸的是我的文件没有被下载.

javascript django jquery file download

7
推荐指数
1
解决办法
1320
查看次数

关闭表单提交时打开的弹出窗口并触发单击父窗口

我有一个父窗口,我在其中使用 window.open() 打开弹出窗口,并且我正在使用 window.opener 方法监视该弹出窗口的返回。我在这里有两个疑问:

  1. 在我的弹出窗口中,有一个提交按钮负责表单的提交功能,我想等待提交完成并在提交时关闭此弹出窗口。
  2. 当提交表单并关闭弹出窗口时,我正在获取文本框值之一,并在弹出窗口关闭后立即在父窗口中使用该值来自动模拟搜索。

代码:

// parent window handling of information returned from the pop-up window
function HandlePopupResult(value) {
    alert("The field value is: " + value);
    $("input[value='Search']").trigger("click");
}

//pop-up window handling of information to be returned to the parent window on submission
$("#myForm").submit(function() {
    window.opener.HandlePopupResult($("#field").val());
    window.close();
});
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:如何确保提交已完成,以便我在父窗口中触发搜索点击并关闭此弹出窗口?请让我知道。

我终于能够正确地将信息发送回我的父表单,但我只需要确保我的提交完成。关于确保仅在提交成功后触发我的事件的任何建议?

干杯。

javascript jquery form-submit window.open window.opener

5
推荐指数
1
解决办法
2271
查看次数

等待form.submit()/ POST完成

我陷入了一个非常奇怪的情况。解释起来很复杂,但我会尽力而为。

问题的详细说明:

在导航的每个顶部单击(绿色甜甜圈/圆圈)或下一步按钮,如果存在并且有效,则必须提交该表单。如果无效,form.valid()会触发验证错误,返回false将停止任何进一步的传播。在我发现一个奇怪的行为(不是很持久)之前,此设置可以正常工作。具体来说,我第3个标签上的表格数据量很大。当我点击下一步按钮时,它实际上应该经过相同的过程:检查现有表格(如果有效),然后提交。Submit会调用POST操作方法,发布完成后将获取下一个选项卡的视图。它像这样运行5/10次,但有时GET在POST之前执行,这会导致下一页加载不完整的数据。当我放置断点进行调试时,我看到下一个选项卡的GET在当前选项卡的POST之前执行。

用户界面说明:

我有一个UI,<a>顶部有4个导航按钮-中心始终有一个表单-底部有上一个和下一个按钮。

在此处输入图片说明

使用MVC在MVC中构造表单 Ajax.BeginForm

对于<a>顶部的每个Nav链接元素,我都有一个JavaScript函数

var LoadTabs = function (e, arg) {  
    // This is to validate a form if one of the top links is clicked and form has incomplete fields...
    if (arg !== "prev" && arg !== "next") {
        if (!window.ValidateForm(false)) return false;
    }

    var url = $(this).attr('data'); // this contains link to a GET action method
    if (typeof url != "undefined") {
        $.ajax(url, { context: { param: arg } }).done(function …
Run Code Online (Sandbox Code Playgroud)

javascript c# asp.net-mvc jquery asp.net-mvc-5

3
推荐指数
1
解决办法
7893
查看次数