Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Создание элемента DOM в jQuery (https://javascript.ru/forum/jquery/17093-sozdanie-ehlementa-dom-v-jquery.html)

bartonom 05.05.2011 16:25

Создание элемента DOM в jQuery
 
Здравствуйте!
При клике по кнопке формы "Просмотр" проверяется ввели ли в поле <input> название. Если нет, за этим полем с помощью jQuery создается новый элемент <span> с msq = "Введите название", который вставляется за эти полем.
Хотелось выводить после клика по кнопке "Просмотр", но проблема: Сообщение появляется и тут же исчезает? До функции связывающей обработчик с кликом, новый элемент - newElement выводится и не исчезает, а элемент - $newPit исчезает после показа.
Подскажите пожалуйста , в чем проблема?

<script type="text/javascript">
$(function(){
title ="<?php echo $caption ?>";
var $previewButton = $('input#preview'); // отбор кнопки "Просмотр"
if (title == "") {
newElement = $("<span id='cap' >Введите название </span>").insertAfter("#caption");
}

$previewButton.bind ('click', function(e) { // событие по кнопке "Просмотр"
$newPit = $("<span>Введите название </span>").insertAfter("#save");
});
});
</script>

0931454574 06.05.2011 09:57

Если я все правильно понял, то что мешает расположить элемент span заблаговременно?
И обработчик такой будет.
Вешаем на кнопку при загрузке документа обработчик клик.
При клике проверяем параметр value!=""
после если да , то show для span
если нет то ничего.
Через 30 мин выложу исходник.

0931454574 06.05.2011 10:13

Как и обещал, пожалуйста.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"  type="text/javascript"></script>
[JS]<script>
$(document).ready(function() // загрузка документа
{
$('#buttom').click(function() {   // обработчик клика по кнопке
	var massege = $('#input_form').val();// берем значение поля input
 
	if(massege!="")   // проверка не пусто ли в поле
	{
		$('#spantext').hide(); // это сделано чтобы после вывода span и при вводе повторно это сообщение пряталось таки.
		alert ("Все в порядке, спасибо зарядке");
		
	}else
	{
		$('#spantext').show(); // показываем спан
		
	}
});
});
</script>[/JS]

</head>

<body>
<input type="text" name="input" id="input_form" />
<span  id="spantext" style="display:none">А это почему мы ничего не вводим</span> // свойство span говорит чтобы браузер его не отображал, кстати вызов функции можно без обработчика клика сделать, свойством onclick на элеменет
<input type="button" value="show" id="buttom" />
</body>
</html>



Если что не ясно или не то, пишите.

bartonom 06.05.2011 19:00

Спасибо большое за подробный ответ!
Ваша информация помогла.
Но у меня кнопка "просмотр" с типом submit. В этом как я понимаю и была проблема. Форма отправляется (хоть action='#') что я не принял во внимание и сответственно сообщение исчезает.
Еще раз спасибо за ваш отклик!
PS. Поскольку новичок на форуме нажал плюс в карму, но по моему что не то сделал, было 528, стало 527. Прошу извинить, напишите что сделать чтобы исправить ошибку с этим плюсом в карму, если она была

0931454574 07.05.2011 23:23

К черту карму)) Тут никто не знает зачем она))

Kolyaj 08.05.2011 09:54

Цитата:

Сообщение от bartonom
но по моему что не то сделал, было 528, стало 527

-528 + 1 как ни странно равно -527 :)

0931454574 08.05.2011 16:26

Меня настораживает, это получается 528 челов нажали минус))) О я ору)

melky 08.05.2011 16:49

неа.

если у парня много кармы и он редко дает карму другому, то

он дает дельта карме другого, которая вычисляется по формуле.

т.е. чем больше у тебя карма и чем реже ты качаешь её другому, то большая цена у твоего голоса.

у меня щас голос около сотки))

Kolyaj 08.05.2011 18:25

0931454574,
нажмите уже "профиль" под своим ником, посмотрите, кто и за что вам минусы ставил.


Часовой пояс GMT +3, время: 14:57.