validation可编辑字段

我正在使用Jeditable (发布到CakePHP)在我的页面上输入。 我希望用户只在Jeditable字段中填写数字,所以我的想法是也使用jQueryvalidation插件来validation是否只使用了数字,我已经在我的网站的其他部分使用它。

当您单击div时,Jeditable会动态创建带有输入的表单,因此似乎没有任何内容可供Jqueryvalidation绑定到它并且它似乎不正常工作。

我可以通过Jeditable设置表单的类名(它只有一个类atrribute),创建的输入只有一个name属性,默认为“name”。

我的问题:

  • 这是一个只需要数字的好方法吗?
  • 如果是这样,如何使它与Jqueryvalidation
  • 如果没有,那么什么是更好的解决方案?

在此先感谢,我期待着我得到的任何答案;)

您可以直接在jeditable中使用jQueryvalidation插件来validation表单的字段

$('.edit').editable(your_url, { onsubmit: function(settings, td) { var input = $(td).find('input'); $(this).validate({ rules: { 'nameofinput': { number: true } }, messages: { 'actionItemEntity.name': { number: 'Only numbers are allowed' } } }); return ($(this).valid()); } }); 

这段代码对我有用

 function isNumeric(value) { if (value == null || !value.toString().match(/^[-]?\d*\.?\d*$/)) return false; return true; } $('.edit').editable(your_url, { onsubmit: function(settings, td) { var input = $(td).find('input'); var original = input.val(); if (isNumeric(original)) { console.log("Validation correct"); return true; } else { console.log("Validation failed. Ignoring"); input.css('background-color','#c00').css('color','#fff'); return false; } } }); 

您可以在Jeditable中使用onsubmit事件并检查输入是否只有数字。 这只是一个例子,我没试过:

 function isNumeric(value) { if (value == null || !value.toString().match(/^[-]?\d*\.?\d*$/)) return false; return true; } $('.edit').editable(your_url, { onsubmit: function(settings, original) { if (isNumeric(original)) { return true; } else { //display your message return false; } } }); 

对于我的项目,我已将函数名称更改为isAcceptable,因为我允许使用括号,短划线,点作为电话号码的一部分。

 function isAcceptable(value) { if (value == null || !value.toString().match(/^[-+]?\d*\.?[\d\s().-]+$/)) return false; return true; } 

打开jquery.editable.js并找到:onedit函数

 /* setup some functions */ var onedit = settings.onedit || function() { }; 

做一些像:

 $('.edit').editable(your_url, { onedit:function(){ alert("original value"+$(this).text()); }, });