Ciao.
Lo snippet:
Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it" dir="ltr">
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/JavaScript">
/* shortcut dom */
function _createElement(el,obj){
var _el= document.createElement(el);
for(var prop in obj){
_el.setAttribute(prop,obj[prop]);
}
return _el;
};
function _createTextNode(text){
return document.createTextNode(text);
};
function _removeChild(parent,child){
if(child != null){
parent.removeChild(child);
}
};
function console(obj){
this.add = function(message) {
obj.innerHTML = message;
};
};
/* Events */
function addEvent(elm, evType, fn, useCapture){
if (elm.addEventListener){
elm.addEventListener(evType, fn, useCapture);
return true;
} else if (elm.attachEvent) {
var r = elm.attachEvent('on' + evType, fn);
return r;
} else {
elm['on' + evType] = fn;
}
};
function getTarget(e){
var target = window.event ? window.event.srcElement : e ? e.target : null;
if (!target){return false;}
return target;
};
function cancelClick(e){
if (window.event){
window.event.cancelBubble = true;
window.event.returnValue = false;
return;
}
if (e){
e.stopPropagation();
e.preventDefault();
}
};
/* Utility */
function $(){
var elements = new Array();
for (var i = 0;i<arguments.length;i++){
var element = arguments[i];
if (typeof element == 'string'){
element = document.getElementById(element);
}
if (arguments.length == 1){
return element;
}
elements.push(element);
}
return elements;
};
function trim(s) {
while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r')) {
s = s.substring(1,s.length);
}
while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r')) {
s = s.substring(0,s.length-1);
}
return s;
};
function addNumberToString(str,num){
return str.concat(parseInt(num));
};
/* Validation */
function isEmpty(val) {
return !/\S/.test(val);
}
/* Job */
function buildError(el,msg){
var showError= _createElement(el,{id:'show-error'});
showError.appendChild(_createTextNode(msg));
return showError;
}
function ManageTag(){
var target= null;
var seedTag= 'tag-name-';
var seedTagAction= 'action-tag-';
function getFocus(target){
var firstLi= target.getElementsByTagName('li').item(0);
if(!firstLi){return}
var forFocus= firstLi.getElementsByTagName('form').item(0);
if(forFocus.elements[3].getAttribute('name')=='tag_new_name'){
forFocus.elements[3].focus();
}
}
function getTagId(e){
var target= getTarget(e);
cancelClick(e);
var elementId= target.getAttribute('id');
return parseInt(elementId.split("-")[2]);
}
function deleteConfirm(tagName){
return window.confirm("You are about to delete this tag \n'"+tagName+'\'\n\'OK\' to delete, \'Cancel\' to stop.');
}
function deleteResponse(xhr){}
function deleteRequest(e){
var currentTagId= getTagId(e);
alert(currentTagId);
}
function updateRequest(e){
var tagNewName= '';
var currentTagId= getTagId(e);
if(isNaN(currentTagId)){return;}
var currentActionElementId= addNumberToString(seedTagAction,currentTagId);
var currentActionElement= $(currentActionElementId);
if(!currentActionElement){return;}
var _form= currentActionElement.getElementsByTagName('form').item(0);
if(_form.elements[3].getAttribute('name')=='tag_new_name'){
tagNewName= trim(_form.elements[3].value);
}
var _fieldset= currentActionElement.getElementsByTagName('fieldset').item(0);
var showError= buildError('span','The field is required !');
_removeChild(_fieldset,$('show-error'));
if(isEmpty(tagNewName)){
_fieldset.appendChild(showError);
_form.elements[3].focus();
return;
}
}
function init(){
if(!document.getElementById || !document.getElementsByTagName || !document.createTextNode){return;}
target= $('ul-tag-list');
var regexDelete = /^delete\-tag\-[1-9]\d{0,9}$/;
var regexUpdate = /^update\-tag\-[1-9]\d{0,9}$/;
var inputList= target.getElementsByTagName('input');
for(var i=0;i<inputList.length;i++){
var type= inputList.item(i).getAttribute('type').toLowerCase();
if(type=='submit'){
inputList.item(i).removeAttribute('type');
inputList.item(i).setAttribute('type','button');
var currentTagId= inputList.item(i).getAttribute('id');
if(regexDelete.test(currentTagId)){
addEvent(inputList.item(i),'click',deleteRequest,false);
}
else if(regexUpdate.test(currentTagId)){
addEvent(inputList.item(i),'click',updateRequest,false);
}
}
}
getFocus(target);
}
init();
}
addEvent(window,'load',ManageTag,false);
</script>
</head>
<body>
<div id="heading">
<h1>Test</h1>
</div>
<div id="container">
<div id="navigation">
<div id="content">
<ul id="ul-tag-list">
<li class="li-tag-list" id="action-tag-10">
<form action="/yasin/PHP5/myscripts/blog2/mvc18/admin/manage-tags.php?action=action_tag" method="post">
<fieldset>
<input name="tag_id" type="hidden" value="10" />
<input name="tag_name" type="text" id="tag-name-10" class="tag-list-disabled" disabled="disabled" value="prova" />
<input name="tag_new_name" type="text" value="" />
<input name="tag_action" type="submit" value="Delete" class="tag-list-button" id="delete-tag-10" />
<input name="tag_action" type="submit" value="Update" class="tag-list-button" id="update-tag-10" />
<input name="check_insert" type="hidden" value="1188289284" />
</fieldset>
</form>
<li class="li-tag-list" id="action-tag-7">
<form action="/yasin/PHP5/myscripts/blog2/mvc18/admin/manage-tags.php?action=action_tag" method="post">
<fieldset>
<input name="tag_id" type="hidden" value="7" />
<input name="tag_name" type="text" id="tag-name-7" class="tag-list-disabled" disabled="disabled" value="Events" />
<input name="tag_new_name" type="text" value="" />
<input name="tag_action" type="submit" value="Delete" class="tag-list-button" id="delete-tag-7" />
<input name="tag_action" type="submit" value="Update" class="tag-list-button" id="update-tag-7" />
<input name="check_insert" type="hidden" value="1188289284" />
</fieldset>
</form>
<li class="li-tag-list" id="action-tag-6">
<form action="/yasin/PHP5/myscripts/blog2/mvc18/admin/manage-tags.php?action=action_tag" method="post">
<fieldset>
<input name="tag_id" type="hidden" value="6" />
<input name="tag_name" type="text" id="tag-name-6" class="tag-list-disabled" disabled="disabled" value="MySql" />
<input name="tag_new_name" type="text" value="" />
<input name="tag_action" type="submit" value="Delete" class="tag-list-button" id="delete-tag-6" />
<input name="tag_action" type="submit" value="Update" class="tag-list-button" id="update-tag-6" />
<input name="check_insert" type="hidden" value="1188289284" />
</fieldset>
</form>
<li class="li-tag-list" id="action-tag-3">
<form action="/yasin/PHP5/myscripts/blog2/mvc18/admin/manage-tags.php?action=action_tag" method="post">
<fieldset>
<input name="tag_id" type="hidden" value="3" />
<input name="tag_name" type="text" id="tag-name-3" class="tag-list-disabled" disabled="disabled" value="Ajax" />
<input name="tag_new_name" type="text" value="" />
<input name="tag_action" type="submit" value="Delete" class="tag-list-button" id="delete-tag-3" />
<input name="tag_action" type="submit" value="Update" class="tag-list-button" id="update-tag-3" />
<input name="check_insert" type="hidden" value="1188289284" />
</fieldset>
</form>
<li class="li-tag-list" id="action-tag-1">
<form action="/yasin/PHP5/myscripts/blog2/mvc18/admin/manage-tags.php?action=action_tag" method="post">
<fieldset>
<input name="tag_id" type="hidden" value="1" />
<input name="tag_name" type="text" id="tag-name-1" class="tag-list-disabled" disabled="disabled" value="php5" />
<input name="tag_new_name" type="text" value="" />
<input name="tag_action" type="submit" value="Delete" class="tag-list-button" id="delete-tag-1" />
<input name="tag_action" type="submit" value="Update" class="tag-list-button" id="update-tag-1" />
<input name="check_insert" type="hidden" value="1188289284" />
</fieldset>
</form>
[/list]
</div>
</div>
<div id="footer">
</div>
</body>
</html>
Se click su update mi appare The field is required !
come deve essere se ci riclicco mi rimane ............
però se ad esempio ho cliccato sul primo
update e poi vado sul secondo invece di apparire
The field is required ! mi appare in firebug node was not
found perchèèè