我有一个页面使用JQuery和Jeditable在页面上创建可编辑的文本元素.
在编辑元素时,我希望能够从一个元素到下一个元素.
我不确定如何:
使用jeditable或jquery捕获tab键事件(keycode = 9)
检测到该事件后,将焦点移至下一个元素并通过jeditable激活它
任何帮助赞赏.谢谢!
我正在寻找一种以编程方式选择TinyMCE编辑器实例中的所有内容的方法.
我需要这个的原因是,如果有人点击它就会选择编辑器中的所有文本,我会喜欢它(顺便说一下,我正在使用TinyMCE和JEditable一起使用).
谢谢,
伊丹
我有一个字段由jeditable更新.我想在提交更新之前输出警告消息,如果值正在减少(这会导致数据丢失),但是如果它正在增加则不会.
这似乎是jeditable的onsubmit函数的一个很好的候选者,我可以愉快地触发它.我可以从$('input',this).val()中获取新值,但是如何在此上下文中获取要与之进行比较的原始值?
...
自从发布上述解释/问题后,我想出了各种解决方案.通过更改jquery.ready中的invokation
$('#foo').editable(...);
Run Code Online (Sandbox Code Playgroud)
至
$('#foo').hover(function(){
var old_value = $(this).text();
$(this).editable('ajax.php', {
submitdata {'old_value':old_value}
});
});
Run Code Online (Sandbox Code Playgroud)
我可以在onsubmit方法中使用settings.submitdata.old_value.
但肯定有更好的方法吗?为了能够还原它,jeditable必须仍然将旧值隐藏在某个地方.那么问题就变成如何从onsubmit函数访问它?
非常感谢任何建议.
我正在使用jeditable并有一些编码问题.如果我输入&,保存,然后尝试编辑它显示为&.
可在此处轻松重现:http://www.appelsiini.net/projects/jeditable/default.html
编辑Normal textarea并输入&&&,保存然后再次编辑,您将看到它.我怎样才能解决这个问题?
我看到了Jeditable插件的一些答案,它使用完整的回调函数从AJAX中使用回调函数.
我知道Jeditable有一个SUBMIT按钮的回调函数,所以我想知道是否有一种方法可以对CANCEL按钮进行回调?我没有找到插件文档.
谢谢你的答复,
卡洛斯
PD.这是我从AJAX回调中看到COMPLETE的源代码:
$("#editable_text").editable(submitEdit, {
indicator : "Saving...",
tooltip : "Click to edit...",
name : "Editable.FieldName",
id : "elementid",
type : "text",
});
function submitEdit(value, settings)
{
var edits = new Object();
var origvalue = this.revert;
var textbox = this;
var result = value;
edits[settings.name] = [value];
var returned = $.ajax({
url: "http://URLTOPOSTTO",
type: "POST",
data : edits,
dataType : "json",
complete : function (xhr, textStatus)
{
var response = $.secureEvalJSON(xhr.responseText);
if (response.Message != "")
{
alert(Message);
} …Run Code Online (Sandbox Code Playgroud) jeditble上有任何选项,所以当我双击我的文本并弹出文本框时它会突出显示所有文本
我现在已经玩了2天的jeditable,这太棒了!
但是我遇到了一个小问题,我有一个应该可以编辑的链接,但是每当该字段变得可编辑时,我都无法编辑该字段,当我点击它时,它会直接跳转到该链接.
有解决方案吗
这是我的代码
<a href="$homeurl/$hashkey" class="editsubject" id="$hashkey">$subject</a><span class="edittrigger" style="cursor:pointer;background:#EEEEEE;">edit</span>
$(document).ready(function() {
$('.editsubject').editable('editsubject.php', {
event : 'editclick',
cancel : 'Cancel',
submit : 'OK',
indicator : 'Wait...',
id : 'hk',
name : 'ns',
css : 'inherit'
});
$('.edittrigger').bind('click', function() {
$(this).prev().trigger('editclick');
});
});
Run Code Online (Sandbox Code Playgroud)
谢谢
当我点击编辑某些文本时,Jeditable会在文本区域的实际文本周围插入额外的空格.如何修剪或实际修复此问题?
我正在使用JEditable插件进行就地编辑.
我有一个"设置"功能,可以调用.editable()所有相关的类.问题是,我新添加了我想要编辑的元素.显然,新添加的内容.editable()永远不会被调用.
换句话说,我希望得到jquery live()函数的效果,但是对于editable()函数.
我当前的解决方法对我来说似乎有点难看(redscribe_button是需要单击以编辑文本的按钮):
$(".redescribe_button").live("click", function(click_event) {
click_event.preventDefault();
$(".editable", $(this).parent().parent()).editable("/temp/", {
event: "make_editable",
indicator : 'Saving...',
tooltip : 'Click to edit...'
});
$(".editable", $(this).parent().parent()).trigger('make_editable');
});
Run Code Online (Sandbox Code Playgroud)
换句话说,每次单击编辑按钮时,我只是调用.editable.
想要更好的解决方案吗?
在的文档jeditable为submitdata PARAM(一个参数包括在Ajax请求一些额外参数)这是说:
(混合)submitdata:提交内容时的额外参数.可以是返回哈希的哈希值或函数.
Run Code Online (Sandbox Code Playgroud)$(".editable").editable("http://www.example.com/save.php";, { submitdata : {foo: "bar"}; }); $(".editable").editable("http://www.example.com/save.php";, { submitdata : function(value, settings) { return {foo: "bar"}; } });
所以我需要在submitData中包含一些我从表单序列化中恢复的参数:
<form id="myForm">
<input type="hidden" name="param1" value="myValue1"/>
<input type="hidden" name="param2" value="myValue2"/>
</form>
Run Code Online (Sandbox Code Playgroud)
所以,当我准备提交数据时,我做:
submitdata : function(value, settings){
return $("#myForm").serializeArray();
}
Run Code Online (Sandbox Code Playgroud)
问题是以这种方式序列化表单会产生如下格式:
[Object { name="param1", value="myValue1"}, Object { name="param2", value="myValue2"}]
Run Code Online (Sandbox Code Playgroud)
但是jeditable不理解它并且它在请求中发送
0[name] param1
0[value] myValue1
1[name] param2
1[value] myValue2
Run Code Online (Sandbox Code Playgroud)
我尝试过使用serialize()函数,但它不理解它,因为Jeditable需要类似的东西:
{param1: "value1" , param2: "value2"}
Run Code Online (Sandbox Code Playgroud)
有没有办法以可编辑的所需格式序列化表单,或者在序列化后快速更改格式?
谢谢.