jQuery validation对我而言有点purpose肿,所以我找到了Happy.js。不幸的是,仅在使用“提交”按钮时才触发验证,而我没有。 jQuery验证提供了一个“form()”函数以编程方式触发验证,因此我尝试将函数实现到Happy.js中-没有成功。我找到了一个开心的回调实现(commit),但这也不起作用。

一些代码(已更新):

$('#someFormSubmit').click(function() {
  $('#someForm').submit();
});
$('#someForm').submit(function(event) {
  event.preventDefault();
  var jqxhr = $.post('/some', $('#someForm').serialize())
    .success(function(response) {});
});
$("#someForm").isHappy({
  fields: {
    '#name': {
      required: true,
      message: "Hello"
    },
  },
  testMode: true,
  unHappy: function () { alert("hello"); },
});

回调没有警报,“happy”始终为true(应为false)。

该表格位于twitter-bootstrap模式框中。由于modal-body和modal-footer分开,因此仅存在要提交的链接.btn,但没有正确的输入type = submit。

有什么办法吗?

最佳答案

尝试这样的事情:

// Remember to do all your happy validation stuff first, to ensure that jQuery
// fires off the events in the correct order.
$("#yourForm").isHappy({
  // your validation config
});

$("#yourForm").submit(function (event) {
  // This line prevents the form from actually being submitted
  event.preventDefault();

  // You can then define your actions however you like
  $.post({
    // your config here
  });
});

// When it's time to "submit" the form, it's easy
$("#yourForm").submit();

我尚未使用happy.js对此进行测试,但它也应该触发验证。

更新:这是我的jsfiddle。它表明它正在工作(尽管如果您检查了小提琴,则将看到对该代码的一些修改)。我不知道为什么这些字段没有在模糊时验证。可以使用happy.js来解决这个问题,因此,如果遇到问题,您可能希望将问题发布给作者。

关于javascript - 使用JavaScript触发happy.js验证?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9297033/

10-12 14:05