2014-01-13 31 views
2

我正在使用jEditable插件。我的问题是,如何检测何时用户单击jEditable的外部文本字段?当用户在表单外单击鼠标时如何更新jEditable文本字段?

当用户单击可编辑文本字段外部时,仍然光标停留在文本字段中,什么都没有发生?

编辑:
我jEditable形式看起来像

<span class="edit"> 
    <form> 
     <input/> 
    </form> 
</span> 

这里是我当前的代码

$(".edit").editable("path/to/url", { 
    indicator : "saving...", 
    type : 'text', 
    event : 'custom_event', 
    submitdata : function(value, settings) { 
     return { 
      _method : "post", 
      myId : jQuery("#id").val(), //extra needed id 
     }; 
    }, 
    select : true, 
    onblur : 'submit', 
}); 

'的onblur' 当我按下{tab key}正在然后将其提交文本字段的内容。但是当我在文本字段外单击鼠标时,则不会发生任何事情,并且文本字段保持不变。

我还想在用户在该文本字段之外单击时提交文本字段的内容。

+0

我想你需要在jsedit中添加onblur:function()来处理外部点击。 – Neha

+0

@Neha它已经在那里。但它根本不起作用。 – NullPointer

+0

你能告诉我们你的代码吗?我们喜欢这一点。 – Ziggy

回答

3

我刚刚找到工作了,我的问题解决方案,它可以帮助别人......

$(document).mouseup(function (e) { 
    var container = $(".edit"); 
    if (!container.is(e.target) // if the target of the click isn't the container... 
     && container.has(e.target).length === 0) // ... nor a descendant of the container 
    { 
     if(container.find("form").length > 0) { 
      container.find("form").submit(); 
     } 
    } 
}); 

我从SO Answer之一发现了这个答案。因此,如果有人感兴趣,请查看链接。

0

的问题是事件:ATTR其中U设置“CUSTOM_EVENT”它需要有一些JS喜欢点击等等,这就是为什么的onblur不工作.. 这个工作液事件--- Fiddle Demo

$(".edit").editable("path/to/url", { 
indicator : "saving...", 
type : 'text', 
event : 'click', 
submitdata : function (value, settings) { 
     return { 
     _method : "post", 
     myId : jQuery("#id").val(), //extra needed id 
    }; } , 
select : true, 
submit: "Submit", 
onblur : function() {   
    $(".edit").find("form").submit(); 
    }     
}); 
+0

嗨,我感谢你的回答,但关于'custom_event',我将它设置为有意义的,当用户点击''文本时我不想显示文本字段但只有当用户点击文字后的图像图标时才会显示。 – NullPointer

+0

当你点击某个图像元素时,你的意思是span标签变得可编辑吗? – Neha

+0

是:),正确。当鼠标点击它时,我不想跨标签变为可编辑,但只有当鼠标点击图像时才可以编辑。 – NullPointer

相关问题