Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   submit через ссылку <a> (https://javascript.ru/forum/misc/1088-submit-cherez-ssylku.html)

Phoenix 13.03.2008 12:14

submit через ссылку <a>
 
Настраиваю дизайн, под CMS'кой. Возникла проблема.
В исходнике была кнопка типа submit. Я переделываю ее в:
<a href='javascript://' name="sbm" onClick='submit();'>Войти</a>

(кнопку собственно удаляю).
В опере нормально работает. в ФФ и IE не работает.
Как это можно реализовать в них? Имя формы неизвестно и по порядку форму не вызвать.
Может тут просто синтаксически надо обойти.

Заранее благодарен.

Kolyaj 13.03.2008 12:30

Наверно правильней кнопку стилизовать под ссылку
Код:

input.submit {
  border: 0px;
  background: none;
  text-decoration: underline;
  cursor: pointer;
}


Phoenix 13.03.2008 12:45

Эт понятно. Но допустим будет задача шире. Т.е. на странице будет 2 или более кнопок(ссылок) для отправки формы. Для этого и хочу универсальный код найти :)

Kolyaj 13.03.2008 13:03

Цитата:

Сообщение от Phoenix
Т.е. на странице будет 2 или более кнопок(ссылок) для отправки формы.

А в чем проблема? Делаете несколько кнопок submit, каждой свой name, а на сервере проверяете какой name пришел.

А если сильно хочется с сылками, то можно попробовать так (при условии, что элемент A находится внутри нужной формы)
Код:

<a href='javascript://' name="sbm" onClick="var element = this; while (element = element.parentNode) if (typeof element.submit == 'function') { element.submit(); break; }">Войти</a>

Phoenix 13.03.2008 17:48

Kolyaj,
в ФФ и опере работает. в ИЕ глухо...

Phoenix 13.03.2008 20:43

Kolyaj,
все же сошелся, на настройке submit'a через css ... но с сылками тоже интересно было бы разобраться.

И еще, у формы нет name... Поэтому может IE и выеживается.

Андрей Параничев 13.03.2008 20:59

А если так попробовать?
<a href='javascript://' name="sbm" onClick="var element = this; while (element = element.parentNode) if (element.tagName == 'FORM') { element.submit(); break; }">Войти</a>

Kolyaj 13.03.2008 22:54

Андрей Параничев, угу, именно так и написал сначала, но потом поправил, решив, что будет правильней метод проверять.

Phoenix, щас проверил, в ИЕ typeof form.submit == 'object'! Так что можно проверять или еще на равенство типа submit'а строке 'object', или просто на существования свойства submit, или свойство tagName.

SelenIT 23.03.2008 02:02

Имхо, href="javascript:<что-то с пустым значением>" - зло. В IE такая ссылка может убить gif-анимацию и ролловер-эффекты (для эмуляции сабмита неактуально, но все-таки... в общем случае). Если уж делать такие ссылки, то href="#" и обязательно return !1 в конце onclick-а. Хотя лично я не понимаю, зачем вообще для такого эффекта ссылки (с необходимостью глушить href), ведь повесить onclick можно на любой элемент - хоть span (соотв. образом стилизованный)... А вообще Kolyaj прав, кнопки должны быть кнопками - не у всех JS включен.

scuter 23.03.2008 06:05

может попробовать так
<a href='#' name="sbm" onClick='submit();'>Войти</a>


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