ajax提交表单的问题(挺棘手的)
首先:
1、页面有个表单:
<form id="form1" action="input.aspx" method="post" enctype="multipart/form-data">
//里面有多个text,多个file文本框。
//还有一个按钮
<input type="submit" id="btnReg" value="注册" onclick="return checkAll()" />
</form>
2、还有个提交表单代码:标题一
$("#tb input").live("change", function () { //动态绑定每个file
var file = $(this);
file.attr("name", "fileSrc");
if (CheckFilePath($(this))) {
$('#form1').ajaxSubmit({
url: 'input.aspx?action=' + "up",
type: "get",
success: function (data, status) {
if (status == "success") {
if (data == "no") {
alert("不能上传大于1M的图片");
file.parent().html("<input type='file' name='file'/>");
return;
}
msg(file, "ok");
}
}
});
}
else {
alert("请上传正确的图片");
file.parent().html("<input type='file' name='file'/>");
}
})
我的思路:
标题一(红色字体标出)是用户上传图片的时候(表单里面有file)我先判断是否过大,所以我 (url: 'input.aspx?action=' + "up")用了个标记。在后台接收action参数。用来确定是判断。而不是最后提交,以达到我在提交前先判断图片是否过大的效果。
我是想法:
当我这样提交的时候 $('#form1').ajaxSubmit 应该会覆盖(<form>)里面的url,type等属性。结果是正确的。同意。当我onclick="return checkAll()" 也应该覆盖 $('#form1').ajaxSubmit 里面的url、type的属性。但当我点击最后注册的时候。在后台还是能接收到action参数。
我需要解决的的问题:
当我 $('#form1').ajaxSubmit 的时候我传参过去。
当我点击 onclick="return checkAll()" 把之前的type或者url都覆盖。用form表单里面的方式进行。不知道这路能走通不。因为我不熟悉这些。望大家帮帮忙。。
[最优解释]
说到底 你这既是注册页面的及时验证被 用ASHX文件。这样你为每一个需要验证的控件指定一个AJAX方法到后台提交不就行了吗
[其他解释]
<table>
<tr>
<td>用户名</td>
<td><input name="user" id="userName" type="text"/></td>
</tr>
<tr>
<td>头像</td>
<td><input name="file" id="fileName"/></td>
</tr>
</table>
<script>
$("#userName").blur(function({
$.ajax(function(){
参数.....
})
}))
$("#fileName").change(function(
$.ajax(function({
参数...
}))
))
</script>
参数...
}))
))
[其他解释]