我有此代码:
<form action="/example/call/to/api" id="myId" enctype="multipart/form-data" method="post">
在外部.js文件中,我已完成此功能:
$('#myId').on('submit',(function(e) {
e.preventDefault();
$.post("URL"+$(this).attr('action'), function(c) {
var objJson = $.parseJSON(c);
var url = objJson[0].url;
$.ajax({
('#myId').on('submit',(function(e) {
e.preventDefault();
$.ajax({
type:'POST',
url: url,
data:formData,
cache:false,
contentType: false,
processData: false,
xhr: function () {
//some code here,
success:function(html){
//some code here
问题是我不需要重定向,但是现在提交表单时,我总是在/ example / call / to / api上重定向:/为什么在这种情况下preventDefault无法起作用?
该呼叫有效,问题在于“ preventDefault”不起作用!
已解决,我只是具有指向相同ID的相同功能,以发出不同的请求(通过每个表单中的操作)。 只需将每个动作的功能和所有功能分开! 该函数仅在代码中使用第一个ID,而忽略所有其他ID。
答案 0 :(得分:0)
您在('#myId')
之前忘记了$或jQuery,在提交处理程序函数之前还有一个额外的(
。
$('#myId').on('submit', function(e) {
e.preventDefault();
$.ajax({
type:'POST',
url: url,
data:formData,
cache:false,
contentType: false,
processData: false,
xhr: function () {
//some code here
},
success:function(html){
//some code here
}
});
您还需要确保在文档准备就绪时正在运行代码;否则,您的表格将不存在。
$(function(){
$('#myId').on('submit', function(e) {
e.preventDefault();
$.ajax({
type:'POST',
url: url,
data:formData,
cache:false,
contentType: false,
processData: false,
xhr: function () {
//some code here
},
success:function(html){
//some code here
}
});
});
答案 1 :(得分:-1)
您的点击事件必须像这样
('#myId').on('submit', function() {...}
不是('#myId').on('submit', (function() {...})
只需删除函数开始和结束处的(