10

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

当您单击 div 时,Jeditable 会动态创建一个带有输入的表单,因此 Jquery validate 似乎没有任何东西可以绑定,而且它似乎无法正常工作。

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

我的问题:

  • 这是只需要数字的好方法吗?
  • 如果是这样,如何使其与 Jquery validate 一起使用
  • 如果没有,有什么更好的解决方案?

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

4

6 回答 6

13

您可以直接在 jeditable 中使用 jQuery 验证插件来验证表单的字段

$('.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());
    }
});
于 2011-12-14T08:17:20.720 回答
10

这段代码对我有用

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;
        }
    }
});
于 2010-04-20T06:33:23.703 回答
3

您可以在 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;
        }
    }
});
于 2010-03-11T22:35:06.763 回答
0

有一个代码,也许它可以帮助你:D
http://www.codeproject.com/Articles/50059/jQuery-Validate-and-Jeditable-Part-2/

于 2011-08-09T18:01:32.247 回答
0

对于我的项目,我已将函数名称更改为 isAcceptable,因为我允许括号、破折号、圆点作为电话号码的一部分。

function isAcceptable(value) {
  if (value == null || !value.toString().match(/^[-+]?\d*\.?[\d\s().-]+$/)) return false;
  return true;
}
于 2013-03-06T06:49:12.693 回答
-1

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

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

并做一些像:

$('.edit').editable(your_url, {
    onedit:function(){
            alert("original value"+$(this).text());
   },
});
于 2015-01-06T19:04:55.543 回答