Подтвердить поле Jeditable - PullRequest
10 голосов
/ 11 марта 2010

Я использую Jeditable (отправка в CakePHP) для ввода на моей странице. Я хочу, чтобы пользователи заполняли цифры только в полях Jeditable, поэтому я также хотел использовать плагин jQuery для проверки, если используются только цифры, я уже использую это в других частях моего сайта. 1005 *

Jeditable динамически создает форму с вводом, когда вы щелкаете по элементу div, поэтому для проверки Jquery, похоже, нет ничего для привязки, и она не работает как обычно.

Я могу установить имя класса формы через Jeditable (он имеет только атрибут класса), созданный вход имеет только атрибут имени, по умолчанию «name».

Мои вопросы:

  • Это хороший способ требовать только цифры?
  • Если так, как заставить его работать с Jquery validate
  • Если нет, что было бы лучшим решением?

Заранее спасибо, и я с нетерпением жду любых ответов, которые я могу получить;)

Ответы [ 6 ]

13 голосов
/ 14 декабря 2011

Вы можете использовать плагин проверки jQuery непосредственно в jeditable для проверки полей вашей формы

$('.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());
    }
});
10 голосов
/ 20 апреля 2010

у меня этот код работал

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;
        }
    }
});
3 голосов
/ 12 марта 2010

Вы можете использовать событие onsubmit в Jeditable и проверить, есть ли на входе только цифры. Это просто пример, я не пробовал:

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;
        }
    }
});
0 голосов
/ 06 января 2015

Откройте jquery.editable.js и найдите: onedit function

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

и сделайте что-то вроде:

$('.edit').editable(your_url, {
    onedit:function(){
            alert("original value"+$(this).text());
   },
});
0 голосов
/ 06 марта 2013

Для моего проекта я изменил имя функции на isAcceptable, поскольку разрешаю использовать скобки, тире, точки в качестве номера телефона.

function isAcceptable(value) {
  if (value == null || !value.toString().match(/^[-+]?\d*\.?[\d\s().-]+$/)) return false;
  return true;
}
0 голосов
/ 09 августа 2011

Есть код, может быть он вам поможет: D
http://www.codeproject.com/Articles/50059/jQuery-Validate-and-Jeditable-Part-2/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...