Multiple upload fields /w jQuery

В този раздел ще се поместват уроците, свързани с програмирането и дизайна.
Post Reply
User avatar
Fakeheal
Потребител
Потребител
Posts: 15
Joined: 22 May 2010, 21:57
Skype: l-d-.-b-l
CS Nick: tms.iv
Favorite version: CS: 1.6
Contact:

Multiple upload fields /w jQuery

Post by Fakeheal »

Преди няколко дена се заиграх с jQuery и по-точно как да направим форма, в която чрез натискането на бутон да ни се добавят още допълните upload полета. Също така, за да му придам малко по-представителен вид използва CSS3 бутони, от сайта, който е линкнат в демото.

Нека да дам малко разяснение около кода и как работи. :)

Code: Select all

$(document).ready(function(){
	$("#add_fields").click(function(){
		var inputs = $('.fileinput').length;
		var id = inputs + 1;
		$("#inputs").append('<div id="input_'+ id + '"><input type="file" name="fileUpload[]" class="fileinput" /> <a class="remove" href="#" onclick="removefield(' + id + ')">Премахни</a></div>');
	});
});
Първо проверяваме, ако бутона за добавяне на полета (на който сме му задали ID, за да го достъпваме с javascript ;)) е натиснат да провери колко полета има. Това става като използваме $('.fileinput').length. След това към променливата ID присъединяваме колко полета вече има и икрементираме. На 5 ред добавяме към вече създадения div#inputs новото поле придружено към линк, който го премахва.

Следващите 2 функции дават възможността на потребителя да използва линка за премахване, както и да премахне всички полета наведнъж.

Code: Select all

function removefield( id ){
	$("#input_" + id).remove();
}

function removefields()
{
	$("#inputs").empty();
}
Оригинална статия | DEMO | Свали

Aко искате още някакви уроци по уеб програмиране, пишете ЛС :)
User avatar
Jeff
Потребител
Потребител
Posts: 239
Joined: 02 Dec 2010, 15:47
Skype: cs-pro.player
CS Nick: Insidious
Favorite version: CS: Global Offensive
Steam Community ID: ziki_bg

Re: Multiple upload fields /w jQuery

Post by Jeff »

Супер само, че направи някъв лимит щот така мога си добавям 1000 нови полета :)
User avatar
Wakaflocka
V.I.P
V.I.P
Posts: 1137
Joined: 12 Jun 2012, 15:56
Location: У кръчмата на село

Re: Multiple upload fields /w jQuery

Post by Wakaflocka »

iNcolD wrote:Супер само, че направи някъв лимит щот така мога си добавям 1000 нови полета :)

+1 !

ПТ. Браво за добрата работа, само иска един хубав дизайн е ще стане НАЙСТИНА добре! :)
User avatar
Charlike Mike Reagent
Потребител
Потребител
Posts: 395
Joined: 29 Jun 2012, 12:28
CS Nick: Deusch. или BashCaroline#
Favorite version: CS: 1.6
Contact:

Re: Multiple upload fields /w jQuery

Post by Charlike Mike Reagent »

Disrespectt wrote:
iNcolD wrote:Супер само, че направи някъв лимит щот така мога си добавям 1000 нови полета :)

+1 !

ПТ. Браво за добрата работа, само иска един хубав дизайн е ще стане НАЙСТИНА добре! :)
И за какво му е дизайн? Идеята е да може всеки да си го вгражда, където му трябва.
Иначе браво , колежке.
User avatar
physic
V.I.P
V.I.P
Posts: 529
Joined: 31 Jan 2012, 12:57
CS Nick: kaisieva gradina
Favorite version: CS: Global Offensive
Steam Community ID: illuminated2play

Re: Multiple upload fields /w jQuery

Post by physic »

Някой ще може ли да сложи лимит, защото не съм много по jQuery? :D
User avatar
Fakeheal
Потребител
Потребител
Posts: 15
Joined: 22 May 2010, 21:57
Skype: l-d-.-b-l
CS Nick: tms.iv
Favorite version: CS: 1.6
Contact:

Re: Multiple upload fields /w jQuery

Post by Fakeheal »

Code: Select all

$(document).ready(function(){
	$("#add_fields").click(function(){
		var inputs = $('.fileinput').length;
		var id = inputs + 1;
		var max_inputs  = 5; /* Колко полета искаш */
		if(max_inputs <= id)
		{
			$("#inputs").append('<div id="input_'+ id + '"><input type="file" name="fileUpload[]" class="fileinput" /> <a class="remove" href="#" onclick="removefield(' + id + ')">Премахни</a></div>');
		}
		else
		{
			alert('Не може да добавяте повече полета!');
		}
	});
});
User avatar
physic
V.I.P
V.I.P
Posts: 529
Joined: 31 Jan 2012, 12:57
CS Nick: kaisieva gradina
Favorite version: CS: Global Offensive
Steam Community ID: illuminated2play

Re: Multiple upload fields /w jQuery

Post by physic »

Винаги като се опитам да прибавя поле, ми изписва „Не може да добавяте повече полета!“
User avatar
Fakeheal
Потребител
Потребител
Posts: 15
Joined: 22 May 2010, 21:57
Skype: l-d-.-b-l
CS Nick: tms.iv
Favorite version: CS: 1.6
Contact:

Re: Multiple upload fields /w jQuery

Post by Fakeheal »

Логиката ми е грешна. Съжалявам, не го и тествах и стана манджа с грозде наизуст. Смени условието на:

Code: Select all

if(max_inputs >= id)
Целия код трябва да стане така:

Code: Select all

$(document).ready(function(){
   $("#add_fields").click(function(){
	  var inputs = $('.fileinput').length;
	  var id = inputs + 1;
	  var max_inputs  = 5; /* Колко полета искаш */
	  if(max_inputs >= id)
	  {
		 $("#inputs").append('<div id="input_'+ id + '"><input type="file" name="fileUpload[]" class="fileinput" /> <a class="remove" href="#" onclick="removefield(' + id + ')">Премахни</a></div>');
	  }
	  else
	  {
		 alert('Не може да добавяте повече полета!');
	  }
   });
});
Cheers,
Ив
Post Reply

Return to “Учебни теми”