Javascript 将Rails表单POST数据传递给JS click事件

Javascript 将Rails表单POST数据传递给JS click事件,javascript,jquery,ruby-on-rails,ajax,forms,Javascript,Jquery,Ruby On Rails,Ajax,Forms,我有一个简单的表单,用户可以编辑他们的个人资料数据并单击“提交” 我在submit按钮上有一个拦截click事件,这样我可以在继续提交之前运行一些任意客户端验证 $(function() { $("body").on("click", "#user-profile input.submit", function(e) { // Prevent the submit from continuing e.preventDefault(); // Do some val

我有一个简单的表单,用户可以编辑他们的个人资料数据并单击“提交”

我在submit按钮上有一个拦截click事件,这样我可以在继续提交之前运行一些任意客户端验证

$(function() {

  $("body").on("click", "#user-profile input.submit", function(e) {
    // Prevent the submit from continuing
    e.preventDefault();

    // Do some validation stuff here
    //
    //

    // Assuming above was succesful, continue with original submit
    $("#user-profile form.edit_user").submit();
  });
});
我希望能够访问实际的表单数据,这些数据在我截获之前被
发布到提交按钮。更具体地说,表单包含几个Rails嵌套属性,因此我也希望数据采用相同的嵌套格式

此处是否提供表格
POST
数据参数?还是我无法使用
$(“css.selector”).val()从输入字段手动提取数据


谢谢

您可以将侦听器添加到窗体事件,而不是单击

$("body").on("submit", "form", function(e) {
  var valid = true;
// Do some validation stuff here
//
//
  if (!this.inputName.value) valid = false;
// Prevent the submit from continuing if invalid
  if (!valid) e.preventDefault();
});

因此,如果表单元素无效
e.preventDefault()将阻止提交,否则它将提交。

您可以将侦听器添加到表单事件,而不是单击

$("body").on("submit", "form", function(e) {
  var valid = true;
// Do some validation stuff here
//
//
  if (!this.inputName.value) valid = false;
// Prevent the submit from continuing if invalid
  if (!valid) e.preventDefault();
});

因此,如果表单元素无效
e.preventDefault()将阻止提交,否则它将提交。

谢谢。是否最好将
preventDefault()
放在开头,以便在任何验证逻辑开始之前停止提交?如果我要这样做,是否有一种方法可以在最后再次“重新触发”表单提交,如
this.submit()
?只有在表单值无效时才建议阻止。如果在开始时阻止,它将不起作用,因为触发提交后它将首先转到同一个处理程序。谢谢。是否最好将
preventDefault()
放在开头,以便在任何验证逻辑开始之前停止提交?如果我要这样做,是否有一种方法可以在最后再次“重新触发”表单提交,如
this.submit()
?只有在表单值无效时才优先阻止。如果在开始时阻止,它将不起作用,因为触发提交后它将首先转到同一个处理程序。