我正在使用Jeditable(发布到CakePHP)在我的页面上输入。我希望用户只在Jeditable字段中填写数字,所以我的想法是也使用jQuery validation plugin来验证是否只使用了数字,我已经在我网站的其他部分使用了这个。
当您单击div时,Jeditable会动态创建带有输入的表单,因此似乎没有任何内容可供Jquery验证绑定到它,并且它似乎不能正常工作。
我可以通过Jeditable设置表单的类名(它只有一个类atrribute),创建的输入只有一个name属性,默认为“name”。
我的问题:
提前致谢,我期待着我得到的任何答案;)
答案 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());
},
});