我正在开发MVC 5 App。
我有Parent View
调用Partial View
来更改de Picture。
以下是我对部分视图的要求......
$('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));
但我认为这是不正确的。
有什么想法吗?
Tahnks?
答案 0 :(得分:2)
您必须使用jquery id selector
:
$('#formPhoto')
代替
$('formPhoto')
此外,我尝试使用
获取部分视图数据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>