验证Jeditable字段

时间:2010-03-11 14:00:25

标签: jquery cakephp jquery-validate jeditable

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

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

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

我的问题:

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

提前致谢,我期待着我得到的任何答案;)

6 个答案:

答案 0 :(得分: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());
    }
});

答案 1 :(得分: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;
        }
    }
});

答案 2 :(得分: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;
        }
    }
});

答案 3 :(得分:0)

答案 4 :(得分:0)

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

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

答案 5 :(得分:-1)

打开jquery.editable.js并找到:onedit function

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

做一些像:

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