我无法在更改输入时触发表单提交。我想我需要事件处理,但我从来没有真正了解那是什么。
这是我的HTML:
<form action="/upload">
<input type="file" name="file">
</form>
这是我的JS:
$('input').change(function(e){
var closestForm=$(this).closest("form");
closestForm.submit(function(e) {
closestForm.ajaxSubmit({
success: function(data){
console.log('form submitted successfully');
}
}); //ajaxSubmit
return false;
}); //submit
}); //change
请注意我想使用AJAX进行提交,但这不是问题,因为我有我的代码库的其他部分,我可以使用jQuery Form plugin ajaxSubmit()
没有问题
思想?
答案 0 :(得分:2)
由于您希望在输入更改时提交表单。您不需要在表单上提交活动
$('input').change(function(e){
var closestForm=$(this).closest("form");
closestForm.ajaxSubmit({
success: function(data){
console.log('form submitted successfully');
}
}); //ajaxSubmit
return false;
}); //change
答案 1 :(得分:0)
您可以尝试“锁定”表单提交,直到字段填写完毕,如下所示:
var form_locked = true;
$("input").change(function(e){
if($(this).val() == "") {
form_locked = true;
}else{
form_locked = false;
}
});
$("form").submit(function(e) {
// prevent default form submit
e.preventDefault();
if(form_locked) {
alert("Please fill in the field!");
}else{
// Do your form submission stuff here
}
});
答案 2 :(得分:0)
我在我收到的错误消息后解决了我自己的问题,导致了以下SO Q&amp; A。 jQuery form plugin - Uncaught TypeError on file upload
我的错误消息与此类似:
jquery.form.js:357 Uncaught TypeError:
Object function (a,b){return new d.fn.init(a,b,g)} has no method 'handleError'
基本上,只要我下载了最新的jQuery Form插件js文件,我就可以删除submit()
函数,只需使用ajaxSubmit()
作为@Shusl建议。
非常感谢@Shusl让我走上正轨。