| Autor | Zpráva | ||
|---|---|---|---|
| PetrQ Profil |
#1 · Zasláno: 29. 8. 2009, 00:06:03
Hezký večer,
prosím o radu. používám tento jQuery pro přidání řádku tabulky - formuláře, spolu s php - viz dole. Všechno funguje, ale potřeboval bych, aby se každý další řádek tabulky vytvořil bez zadaných údajů, tedy v tomto případě bez hodnoty zadané do name='language[$i][poc]'. Momentálně se mi vytvoří nový řádek, obsahující zadané hodnoty z řádku předcházejícího. Díky všem za pomoc! Petr
// JavaScript Document
$(document).ready(function(){
//Setting some variables needed, don't edit these
var displaySubmit=false, newRowCount=0;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//Define some variables - edit to suit your needs
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
var maxRows=15;
var rowSpeed = 300;
var $table = $("#myTable");
var $tableBody = $("tbody",$table);
var $addRowBtn = $("#controls #addRow");
var $removeAllBtn= $("#controls #removeAllRows");
var $hiddenControls = $("#controls .hiddenControls");
var blankRowID = "blankRow";
var newRowClass = "newRow";
var oddRowClass = "rowOdd";
var evenRowClass = "rowEven"
var hiddenClass = "visible"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//click the add button
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$addRowBtn.click(function(){
if(newRowCount < maxRows){
newRowCount++;
//get the class on the first row...
if($tableBody.find("tr:first-child").hasClass(evenRowClass)){
//the curent first row is even, so we add an odd class
newClasses = hiddenClass+" "+newRowClass+" "+oddRowClass;
}else{
//the current first row is odd, so we add an even row
newClasses = hiddenClass+" "+newRowClass+" "+evenRowClass;
}
//clone the blank row, put the clone at the top, set the correct classes, remove the ID, animate the divs inside
//normally I'd use .addClass(), but I want the classes I set to replace the current set classes, so I use .attr("class") to overwrite the classes
newRow = $("#"+blankRowID,$tableBody).clone().prependTo($tableBody).attr("class",newClasses).removeAttr("id").show().find("td div").slideDown(rowSpeed,function(){
//run this once animations finish
showHideSubmit();
});
//Add click event to the remove button on the newly added row
newRow.find(".removeRow").click(function(){
thisRow = $(this).parents("tr");
rowRemoved=false;
newRowCount--;
//animate the row
thisRow.find("td div").slideUp(rowSpeed,function(){
//this is run once the animation completes
if(!rowRemoved){ //this only lets it fire once per row
thisRow.remove();
showHideSubmit();
//make sure alternating rows are correct once a row is removed
$tableBody.find("tr:odd").removeClass(evenRowClass).addClass(oddRowClass); //odd rows have an odd class
$tableBody.find("tr:even").removeClass(oddRowClass).addClass(evenRowClass);//even rows have an even class
if(newRowCount < maxRows){
$addRowBtn.removeAttr("disabled");//re-enable the add button
}
}
rowRemoved=true;
});
return false; //kill the browser default action
});
}
//disable button so you know you've reached the max
if(newRowCount >= maxRows){
$addRowBtn.attr("disabled","disabled");//set the "disabled" property on the button
}
return false; //kill the browser default action
});
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//Click the remove all button
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$removeAllBtn.click(function(){
//Close all the newly created rows
$tableBody.find("tr."+newRowClass+"").each(function(){
newRowCount--;
showHideSubmit();
//this happens once for every div that slides - no harm done though
$(this).find("td div").slideUp(rowSpeed,function(){
$(this).parents("."+newRowClass).remove(); //remove this row
$addRowBtn.removeAttr("disabled"); //re-enable the add button
});
});
return false;
});
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//Function to show or hide the submit/cancel buttons
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function showHideSubmit(){
if(newRowCount > 0 && !displaySubmit){
//at least one new row is visible, show the hidden controls
$hiddenControls.fadeIn(rowSpeed);
//partially fade out all rows that are not new and disable links within
//$tableBody.find("tr:not(#"+blankRowID+", ."+newRowClass+")").fadeTo(rowSpeed,0.25, function(){
// $(this).find("a").click(function(){return false;});//makes all clicked links go nowhere
//});
displaySubmit= true;
}else if(newRowCount <= 0){
//no new rows are shown, hide the controls
$hiddenControls.fadeOut(rowSpeed);
//fade old rows back in and re-enable links
$tableBody.find("tr:not(#"+blankRowID+", ."+newRowClass+")").fadeTo(rowSpeed,1,function(){
$(this).find("a").unbind("click");//removes the click event we site above
});
newRowCount=0;//Make sure the count is reset to 0...just in case
displaySubmit= false;
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
});
Stránka php vypadá takto:
|
||
|
Časová prodleva: 16 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0