2009-07-09 59 views
0

基本上我想要的很简单,当人们点击时,该字段变得可编辑。jquery-jeditable不工作

当他们改变数值后,在键盘上按Esc /或在外面点击保存记录。

我不知道为什么它不起作用。文档似乎不完整...任何人都知道这是如何工作的? 文档页面:http://www.appelsiini.net/projects/jeditable

在这里我张贴现有的代码在这里供大家审查。

testing.html

<head> 

<title></title> 

<script src="jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script> 
<script src="jquery.jeditable.mini.js" type="text/javascript" charset="utf-8"></script> 

<script type="text/javascript" charset="utf-8"> 

$(function() { 

    $(".click").editable("jeditabletest.php", { 
     indicator : "<img src='indicator.gif'>", 
     tooltip : "Click to edit...", 
     style : "inherit" 
    }); 

}); 

</script> 

<style type="text/css"> 
#sidebar { 
    width: 0px; 
} 

#content { 
    width: 770px; 
} 

.editable input[type=submit] { 
    color: #F00; 
    font-weight: bold; 
} 
.editable input[type=button] { 
    color: #0F0; 
    font-weight: bold; 
} 

</style> 

</head> 



<body>  
     <b class="click" style="display: inline">Click me if you dare!</b></> or maybe you should   

</body> 
</html> 


jeditabletest.php 

<?php 
echo "hehehe" 
?> 

没有人知道什么是错?我试了很多次,根本没有工作。所有相关的库文件已经放在

+0

感谢人反馈:-)最后我找到了它不工作的原因。通过在编辑后点击其他地方,需要设置\t onblur:'submit',如果没有,脚本将不执行对外部文件的ajax调用。 – 2009-07-10 01:15:56

回答

1

为使提交表单当用户点击外执行以下操作:

$(".editable").editable("http://www.example.com/save.php", { 
    onblur : "submit" 
}); 

提交时按下ESC键通常是因为ESC是一个坏主意普遍取消保留。如果你真的想要这样做,你需要编辑Jeditable代码。在jquery.jeditable.js中搜索并编辑以下内容:

/* discard changes if pressing esc */ 
input.keydown(function(e) { 
    if (e.keyCode == 27) { 
     e.preventDefault(); 
     reset.apply(form, [settings, self]); 
    } 
}); 
+0

我发现了一个可笑的问题。 例 - 在Firefox 当我点击编辑,将“词”居中对齐...... 然后我点击其他地方使用火狐,正面和特定词的后面会保存从文本数据到数据库有额外的空白空间(即使我修剪在Ajax页面收到的字符串)。例如:我想保存“单词”,但保存到db的最终数据是“单词” 在IE中没有这样的问题。 你知道这个过程中发生了什么吗? – 2009-07-23 08:44:20

0

我跑你的代码,它似乎工作正常。我认为它不适合你的原因是这个.html页面需要从一个像http://localhost/mypage.html这样的web服务器运行。 只要您尝试保存编辑后的文本,并且为了使AJAX调用正常工作,您需要从服务器运行页面,jeditable插件就会向服务器发出AJAX调用。

希望这会有所帮助!