javascript - 如何使用 jQuery 对注入(inject)的 ajax 表单进行多次验证?

标签 javascript jquery ajax forms validation

我想要一个具有多重验证的表单(通过 ajax 注入(inject))。像这样:

<div data-form> <!-- Already on the page -->
  <!-- Coming from API -->
  <form> 
    <input type="number" data-input-decimal>
    <input type="number" data-input-integer>
    <input type="submit">
  </form>
</div>

这是我的 jQuery:

var $DATA_INPUT_DECIMAL = $('[data-input-decimal]');
var $DATA_INPUT_INTEGER = $('[data-input-integer]');
var $FORM = $('[data-form]');

$FORM.on('keydown', $DATA_INPUT_DECIMAL, function(e) {
  console.log('banana');
  // This is the validation for the input with decimal
}

$FORM.on('keydown', $DATA_INPUT_INTEGER, function(e) {
  console.log('apple');
  // This is the validation for the input with ONLY NUMBERS (0-9)
}

奇怪的是,当我在浏览器上进行测试时,当我keydown 表单中的任何input 时,这两个函数都会被调用。在这种情况下如何正确设置不同的验证?

提前致谢!

最佳答案

你需要简单的委托(delegate):

$('[data-form]').on('keydown', 'input', function(e) {
  if ($(this).is('[data-input-decimal]')) {
    console.log('decimal');
  } else if ($(this).is('[data-input-integer]')) {
    console.log('integer');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div data-form>
  <!-- Already on the page -->
  <!-- Coming from API -->
  <form>
    <input type="number" data-input-decimal>
    <input type="number" data-input-integer>
    <input type="submit">
  </form>
</div>

关于javascript - 如何使用 jQuery 对注入(inject)的 ajax 表单进行多次验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45509281/

相关文章:

javascript - 应用标准业务代码

javascript - Jquery:使用复选框值更改现有价格

javascript - Platform.js( polymer )、jQuery 2.x.x 和 Bootstrap - 错误

ajax - 我如何在我的 asp.net mvc Web 应用程序中使用 Ajax.beginform 更新两个 DOM 元素

javascript - 如何在javascript中通过json解析关联数组

javascript - HTML 复选框 : wrote/delete value from div

javascript - jquery html() 方法无法有效插入 html 代码

jquery - 调用 jQuery 选项卡加载的内容页面中定义的函数

javascript - 使用 JSPlumb 仅分离父级中的最后一个子级

javascript - 通过 POST 将 JSON 从 Flask 返回到 AJAX