Вход

Просмотр полной версии : Создание элемента DOM в jQuery


bartonom
05.05.2011, 16:25
Здравствуйте!
При клике по кнопке формы "Просмотр" проверяется ввели ли в поле <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>
<script>
$(document).ready(function() // загрузка документа
{
$('#buttom').click(function() { // обработчик клика по кнопке
var massege = $('#input_form').val();// берем значение поля input

if(massege!="") // проверка не пусто ли в поле
{
$('#spantext').hide(); // это сделано чтобы после вывода span и при вводе повторно это сообщение пряталось таки.
alert ("Все в порядке, спасибо зарядке");

}else
{
$('#spantext').show(); // показываем спан

}
});
});
</script>

</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
но по моему что не то сделал, было 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,
нажмите уже "профиль" под своим ником, посмотрите, кто и за что вам минусы ставил.