mah.tab
یک شنبه 11 خرداد 1393, 23:00 عصر
من میخام دکمه ای قرار بدم که بعد از کلیک شدن بدون تغیر صفحه همونجا فیلد های مطلب قابل ویرایش شوند.
از چه چیزی باید استفاده کنم ؟
hakan648
یک شنبه 18 خرداد 1393, 08:24 صبح
شاید این کدی که نوشتم ایده ای از نحوه ی انجام کار بهتون بده. ( شاید هم کتابخانه ای برای انجام این کار باشه، ولی من اطلاعی ندارم. )
<form>
<span
class="editable"
data-input-type="text"
data-input-name="name">some text</span><br/>
<span
class="editable"
data-input-type="check"
data-input-name="gender">Yes</span><br/>
<input type="button" value="edit" id="btn_edit"/>
</form>
var isInEditMode;
document.getElementById("btn_edit").onclick = function()
{
if(!isInEditMode)
{
enableEditForm();
isInEditMode = !isInEditMode;
}
}
function enableEditForm()
{
var $editableElems = $("form .editable");
$editableElems.each(function(i, e){
var $elem = $(e);
enableEditElem($elem);
});
}
function enableEditElem($elem)
{
var
value = $elem.text(),
type = getEditElemType($elem),
name = $elem.attr("data-input-name"),
$label = $("<label/>").text(name + ":"),
$editElem = getEditElem(value, type, name);
$elem
.hide()
.after($editElem)
.after($label);
}
function getEditElemType($elem)
{
return $elem.attr("data-input-type");
}
function getEditElem(value, type, name)
{
var $elem;
switch(type)
{
case 'text':
$elem = $("<input/>").attr("type","text").val(value);
break;
case 'check':
$elem = $("<input/>").attr("type","checkbox");
if(value && value == "Yes")
$elem.attr("checked", "checked");
break;
//other types
}
$elem.attr("name", name);
return $elem;
}
Test
http://jsfiddle.net/E5pRv/1/
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.