2009-07-09 89 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調用。

希望這會有所幫助!