Подтвердить поле Jeditable
Я использую Jeditable (размещение в CakePHP) для ввода на моей странице. Я хочу, чтобы пользователи заполняли только цифры в полях Jeditable, поэтому моя идея заключалась в том, чтобы использовать плагин проверки jQuery, чтобы проверить, используются ли только числа, Я уже использую это в других частях моего сайта.
Jeditable динамически создает форму с вводом, когда вы нажимаете на div, поэтому, похоже, для Jquery не требуется ничего, чтобы привязываться к нему, и это не работает нормально.
Я могу установить имя класса формы через Jeditable (у него есть только класс atrribute), созданный вход имеет атрибут имени, который по умолчанию имеет "имя".
Мои вопросы:
- Это хороший способ требовать только числа?
- Если да, то как заставить его работать с Jquery validate
- Если нет, то что будет лучшим решением?
Спасибо заранее, и я с нетерпением жду любых ответов, которые я мог бы получить;)
Ответы
Ответ 1
Вы можете использовать плагин проверки 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());
}
});
Ответ 2
этот код работал у меня
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
Вы можете использовать событие 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;
}
}
});
Ответ 4
Есть код, возможно, он может вам помочь: D
http://www.codeproject.com/Articles/50059/jQuery-Validate-and-Jeditable-Part-2/
Ответ 5
В моем проекте я изменил имя функции на isAcceptable, потому что я допускаю, чтобы скобки, тире, точки были частью номера телефона.
function isAcceptable(value) {
if (value == null || !value.toString().match(/^[-+]?\d*\.?[\d\s().-]+$/)) return false;
return true;
}
Ответ 6
Откройте jquery.editable.js и найдите: функция onedit
/* setup some functions */
var onedit = settings.onedit || function() { };
и выполните следующие действия:
$('.edit').editable(your_url, {
onedit:function(){
alert("original value"+$(this).text());
},
});