Javascript Django:我可以将“action=”和jQuery分配给同一个表单吗?
我的模板中有一个表单,它将提交的数据发送到{%url'javascript:index%}: 问题是,表单从未发布到{%url'javascript:index%},因为jQuery脚本是先执行的Javascript Django:我可以将“action=”和jQuery分配给同一个表单吗?,javascript,python,jquery,django,Javascript,Python,Jquery,Django,我的模板中有一个表单,它将提交的数据发送到{%url'javascript:index%}: 问题是,表单从未发布到{%url'javascript:index%},因为jQuery脚本是先执行的 是否有任何方法可以按以下顺序提交表单:首先将数据发送到{%url'javascript:index%},然后运行脚本?您应该使用AJAX来完成此操作 $('#login-form').on('submit', function(event){ event.preventDefault();
是否有任何方法可以按以下顺序提交表单:首先将数据发送到{%url'javascript:index%},然后运行脚本?您应该使用AJAX来完成此操作
$('#login-form').on('submit', function(event){
event.preventDefault();
var myform = document.getElementById('login-form');
var fd = new FormData(myform );
var post_url = $(this).find('#login-url').val();
var csrftoken = getCookie('csrftoken');
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
$.ajax({
url : post_url,
data : fd,
cache: false,
processData: false,
contentType: false,
type : "POST",
success : function(data) {
console.log("form submitted!"); // sanity check
$('#table').load('http://127.0.0.1:8000/results',function(){
$('#go_back').remove();
}); // <-- Add it Here!
},
error : function() {
console.log("something bad happened")
}
});
});
然后,您可以通过data.hello在成功呼叫中访问它,它将返回“world”
注3:目前大多数浏览器都支持FormData,但我不能完全确定某些旧版本的Internet Explorer是否支持FormData
无论哪种方式,您都可以通过标准字典发布数据。只需定义一个字典,如
fd = {variable_name: variable_value}
移除
cache: false,
processData: false,
contentType: false,
来自AJAX调用。event.preventDefault;停止表单操作,以便在javascript中处理所有操作。为什么不通过ajax发布到javascript:index,返回数据并显示它呢?删除默认设置没有帮助。我需要将表单数据传递到函数索引,然后从索引传递到结果,因为第二个函数随后使用数据作为变量来从web上刮取数据。load仅用于显示由结果呈现的模板。
<input type="hidden" id="login-url" value="{% url 'javascript:index' %}" />
return JsonResponse({'hello': 'world'})
fd = {variable_name: variable_value}
cache: false,
processData: false,
contentType: false,