» Форма входа

»Мoy-weB ver.4.1

» Статистика

Главная » 2009 » Май » 2 » Cниппеты. JavaScript, часть 2

Cниппеты. JavaScript, часть 2
02.Май.2009 | 21:17:09
1. Определение положения курсора

Code

function getPosition(e)  
  {  
  e = e || window.event;  
  var cursor = {x:0, y:0};  
  if (e.pageX || e.pageY)  
  {
  cursor.x = e.pageX;
  cursor.y = e.pageY;
  }  
  else  
  {
  cursor.x = e.clientX +  
  (document.documentElement.scrollLeft ||  
  document.body.scrollLeft) -  
  document.documentElement.clientLeft;

  cursor.y = e.clientY +  
  (document.documentElement.scrollTop ||  
  document.body.scrollTop) -  
  document.documentElement.clientTop;
  }
  return cursor;
  }

2. Попап окно, которое выводиться по центру экрана

Code

nn4 = (document.layers) ? true : false;
ie4 = (document.all) ? true : false;
dom = (document.createTextNode)? true : false;

function popupWindow(fileUrl, winN, winWidth, winHeight, scrollB)  
  {
  var winName = (winN)? winN : 'popupWin'
  var scrollBars = (scrollB)? scrollB : 'auto'
  if (nn4 || ie4 || dom)  
  {
  if (screen.width < winWidth + 50) { winWidth = screen.width - 50; scrollbars = 'yes' }
  if (screen.height < winHeight + 100) { winHeight = screen.height - 100; scrollbars = 'yes' }
  posX = Math.round((screen.width - winWidth) / 2);
  posY = Math.round((screen.height - winHeight) / 2);
  posCode = (nn4)? "screenX="+posX+",screenY="+posY : "left="+posX+",top="+posY;
  }  
  else  
  {
  posCode = "";
  }
  var popupWin = window.open(fileUrl, winName,"menubar=no,
  toolbar=no, scrollbars="+scrollB+", status=yes, resizable=no, width=" + winWidth + ",  
  height=" + winHeight + " ," + posCode);
  if (popupWin) popupWin.focus();
  }

3. Получение GET переменной по ее имени

Code

function getUrlVar(name)
  {
  name = name.replace(/[[]/,"[").replace(/[]]/,"]");
  var regexS = "[?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if(results == null) return "";
  else return results[1];
  }

4. Получение ассоциативного массива GET переменных

Code

function getUrlVars()
  {
  var vars = [], hash;
  var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

  for(var i = 0; i < hashes.length; i++)
  {
  hash = hashes[i].split('=');
  vars.push(hash[0]);
  vars[hash[0]] = hash[1];
  }

  return vars;
  }

5. Универсальный валидатор форм

Code

function checkForm(obj, elems)  
  {
  var element, pattern;
  for (var i = 0; i < obj.elements.length; i++)  
  {  
  // пробегаемся по всем элементам формы
  element = obj.elements[i];
  // Проверяем только нужные поля
  if (elems != undefined)
  if (elems.join().indexOf(element.type) < 0) continue;
  // И только если есть чего говорить юзеру в случае ошибки
  if (!element.getAttribute("check_message")) continue;
  if (pattern = element.getAttribute("check_pattern"))  
  {  
  // если задан рег
  pattern = new RegExp(pattern, "g");
  if (!pattern.test(element.value))  
  {
  alert("Пожалуйста, заполните правильно графу " + element.getAttribute("check_message"));
  element.focus();
  return false;
  }
  }  
  else if(/^s*$/.test(element.value))  
  {  
  // иначе просто проверка что поле не пустое
  alert("Пожалуйста, заполните графу " + element.getAttribute("check_message"));
  element.focus();
  return false;
  }
  }
  return true;
  }

// пример использования  
   
<form method="GET" action="script.htm" onSubmit="return checkForm(this)">
<input type="text" name="dummy"/>Не проверяется<br/>
<input type="text" name="name" check_message="Имя"/>Имя<br>
<input type="text" name="e-mail" check_pattern="^[w-]+(.[w-]+)*@([w-]+.)+[a-zA-Z]{2,7}$" check_message="Электронная почта"/>Электронная почта<br/>
<textarea name="message" check_message="Сообщение"></textarea><br>
<input type="submit" value="submit"/>
</form>

Автор статьи: Павел Марковнин

Категория: JAVA скрипты | Просмотров: 654 | Добавил: CorsaR
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]