关于这个问题,我有一个简短的问题。我正在使用jeditable在页面上就地编辑一些字段。这是完美的工作。现在我希望实现一些数据检查。我有我的php代码来检查输入的数据,如果正确,它会更新数据库,如果不正确,它将返回错误。我的问题是,我希望它吐出错误来告诉他们,但当他们再次单击字段进行编辑时,它会在字段中显示错误,直到页面刷新。我希望它所做的是,当他们在错误发生后点击它时,在字段中有相同的数据,而不是必须刷新页面,然后再次单击该字段进行编辑。也许有一种方法可以返回错误,并将其传递到字段上方的某种工具提示中?当然,jeditable的工作方式是div包围了字段,然后我有一些js调用我的update.php文件,这会解析jeditable传递给它的内容,并返回一个返回错误检查的$value,默认情况下,它只是简单地放在php“$value $value;”的底部,在字段保存到数据库中后放回字段。
希望有人能理解我在这里的要求,任何帮助都将不胜感激。
发布于 2012-06-01 23:44:45
最简单的方法可能是做一些客户端验证。现在,您正在通过在表单提交时签入PHP来进行服务器端验证。你在检查什么?没有代码,很难给你一个很好的客户端验证的例子。
基本字段检查:
var check_field = $("#field").val();
if (!check_field) { alert("Error message"); } else
{
// submit POST or whatever
}编辑
由于MAC地址验证算法已经在服务器端编写,因此我建议使用一个单独的ajax POST请求来调用检查器函数。获取该请求的结果(true,false)并检查客户端。如果为true,则继续进行更新调用。
示例:
$("#form").submit(function() {
var mac = $("#macfield").val();
if (!mac) { alert("MAC address can't be empty!"); } else
{
$.POST("checkmacaddress.php", {macval: mac}).success(function(a){
//assuming a comes back as a bool
if (!a) { alert("Invalid MAC!"); } else
{
// if the checker returned true, update the record
$.POST("update.php" ...);
}
});
} });这不包括checkmacaddress.php,但是如果您手头已经有了这个函数,您应该能够处理它。
发布于 2012-06-02 02:42:01
讨厌我这样做,在这里发帖,然后找出答案myself...but至少如果有人有相同的问题,他们将看到它。我发现了jeditable的onsubmit函数……我在编辑字段时使用工具提示在悬停时显示,所以这会将工具提示设置为错误,并且不提交数据,除非它是有效的mac。
function isMAC(value) {
teststr = value;
regex=/^([0-9a-f]{2}([:-]|$)){6}$|([0-9a-f]{4}([.]|$)){3}$/i;
if (regex.test(teststr)){
return true;
}
else {
return false;
}
}
$(".edit_mac").editable("edit_mac.php", {
onsubmit: function(settings, data) {
var input = $(data).find('input');
var value = input.val();
if (isMAC(value)) {
return true;
} else {
//display your message
$("#tooltip").html("Bad MAC Address...");
return false;
}
},
indicator : "Saving...",
submitdata: { _method: "put" },
submit : 'Save',
cssclass : "editable",
type : "text"
});https://stackoverflow.com/questions/10853069
复制相似问题