我正在开发一个 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 如下所示
我的表单名为“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/