javascript - mvc $ ('form' ).submit 不在部分 View 上执行

标签 javascript jquery ajax asp.net-mvc partial-views

我正在开发一个 MVC 5 应用程序。

我有一个父 View ,它调用部分 View 来更改图片。

这是我对部分 View 的调用...

$('formPhoto').submit(function(event) {
    event.preventDefault();
    if ($(this).valid()) {
        var formdata = new FormData($(this).get(0));
        $.ajax({
            url: this.action,
            type: this.method,
            data: formdata,
            processData: false,
            contentType: false,
            beforeSend: function() {
                alert(1);
            },
            success: function(result) {
                successPhoto(result);
            },
            complete: function() {
                // alert(3);
                // And so on.
            }
        });
    }
    return false;
});

我的部分 View 如下所示

My Partial View looks like this

我的表单名为“FormPhoto”。 我在 Submit 上定义了一个 Ajax 函数,如下所示。

$('formPhoto').submit(function(event) {
    event.preventDefault();
    if ($(this).valid()) {
        var formdata = new FormData($(this).get(0));
        $.ajax({
            url: this.action,
            type: this.method,
            data: formdata,
            processData: false,
            contentType: false,
            beforeSend: function() {
                alert(1);
            },
            success: function(result) {
                successPhoto(result);
            },
            complete: function() {
                // alert(3);
                // And so on.
            }
        });
    }
    return false;
});

此函数永远不会在提交时执行。

我缺少什么?

此外,我尝试使用获取部分 View 数据

var formdata = new FormData($(this).get(0));

但我认为这是不正确的。

有什么想法吗?

坦克斯?

最佳答案

您必须使用 jquery id 选择器:

$('#formPhoto')

相反

$('formPhoto')

Also, I try to get Partial View data using var formdata = new FormData($(this).get(0));

在这里,您创建一个包含表单详细信息的FormData对象。

var formdata = new FormData($(this)[0]);- 这将在 FormData 中自动提交表单元素,您无需手动将数据附加到 FormData 变量。

这是一个例子:

$('button').click(function(){
  var formData=new FormData($('#myForm').get(0));
  console.log(formData.get('input1'));
  console.log(formData.get('input2'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myForm">
  <input type="text" value="test" name="input1"/>
  <input type="text2" value="test2" name="input2"/>
  <button type="submit">Save</button>
</form>

关于javascript - mvc $ ('form' ).submit 不在部分 View 上执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42350948/

相关文章:

javascript - 为什么我触发函数时input type = number值为空

javascript - 如何在用鼠标单击时仅在 html 中找到完全相同且具有相同名称的两个类的类?

javascript - 如何将标题属性发送到 FancyBox 画廊图像?

javascript - 使函数相互依赖

javascript - 如何在不使用 javascript 更改页面的情况下访问文件上传所选文件?

javascript - 使用 AJAX 在 Flask 和 JS 之间发送数据以进行 chrome 扩展

javascript - 使用下面的 jquery ajax 缓存代码时,jquery ajax 中的回调不起作用

asp.net - 性能测试策略 Web 应用程序

jquery - Bootstrap 3.0日期选择器从右到左更改位置

javascript - 当 Flash 层放置在元素上时保持 CSS 动画