我的应用程序中有一个表单需要通过Ajax(JQuery)提交,但是需要从我的JavaScript远程提交(即我不能用户:remote => true )。
我可以在我的JavaScript中找到我的表单没问题:
my_form = $("#the_id_of_the_form");
然后我创建了我的Ajax请求:
$.post('hardcoded path?', function(data) {
// how would I serialize my parameters?
});
非常感谢。
答案 0 :(得分:2)
示例:使用ajax请求发送表单数据
$.post("test.php", $("#testform").serialize());
在你的情况下,它可能就是这样。
$('#your_form').submit(function(event) {
event.preventDefault();
$.ajax({
type: "POST",
url: $(this).attr('action'),
data: $(this).serialize(),
dataType: "JSON"
});
});
答案 1 :(得分:1)
请勿对网址进行硬编码,而应使用表单中存储的网址。
您可以按照以下方式执行此操作:
$("#the_id_of_the_form").submit(function() {
$.post({
url: $(this).attr('action'),
data: $(this).serialize()
});
});
希望这有帮助。
答案 2 :(得分:0)
使用jQuery(<FORM_ID>).ajaxSubmit
您的表单应该类似于
<%= form_for @user,:url=>{:controller=>:logins, :action => 'sign_up'}, :html=>{ :onSubmit => "return checkSignupValidation()",:id=>"signup_form"} do |f|%>
<% end %>
你的js
function checkSignupValidation()
{
jQuery('#signup_form').ajaxSubmit({
url:"/logins/sign_up",
iframe: true,
dataType: 'script',
success: function(data){
//console.log(data)
}
});
}
答案 3 :(得分:0)
尽量不要使用$ .post或$ .get,它不敏捷并导致调试和重构中的麻烦/
$.ajax({
url: 'only_hardcore_path/' + my_form.serialize(),
type: 'POST'
});
或可能是:
$.ajax({
url: 'only_hardcore_path/',
type: 'POST',
data: my_form.serialize()
});