mvc $('form').submit 不在部分视图上执行

mvc $('form').submit do not execute on partial view

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

我有一个 Parent View 调用 Partial 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;
});

我的局部视图是这样的

我的表单名为 "FormPhoto"。 我像这样在提交上定义了一个 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;
});

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

我错过了什么?

此外,我尝试使用

获取部分视图数据

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

但我认为这是不正确的。

有什么想法吗?

坦克斯?

你必须使用 jquery id selector:

$('#formPhoto')

改为

$('formPhoto')

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

在这里创建一个 FormData 对象,其中包含 form 详细信息。

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>