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

时间:2016-02-03 17:51:37

标签: javascript jquery ruby-on-rails ajax forms

我有一个简单的表单,用户可以编辑他们的个人资料数据,然后点击"提交"

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

$(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();
  });
});

我喜欢在拦截之前访问正在提交按钮的实际表单数据POST。更具体地说,表单包含几个Rails嵌套属性,因此我也喜欢使用相同嵌套格式的数据。

表格POST数据参数是否可用?或者我是否因使用$("css.selector").val()手动从输入字段中提取数据?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

$("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();将阻止提交,则会以其他方式提交。