2009-12-30 12 views
1

У меня есть форма входа, где пользователь (который еще не зарегистрирован) может вставить свой логин и пароль, после заполнения этих полей пользователю нужно нажать кнопку отправки.Использование html-ссылки в форме формы

Что я пытаюсь сделать: Замените обычную кнопку отправки для ссылки $ html-> с некоторыми стилями CSS.

Так есть в любом случае я могу использовать что-то вроде этого:

<span class = "licitateThis clearfix"> 
    <?php echo $html->link(__("Sign In", true), array("type" => "Sign In", 'class'=>'licitate')); ?> 
</span> 

Вместо:

echo $form->end(__('Sign In',true)); 

создать кнопку отправки для небольшой формы авторизации?

Мой CSS код:

.licitateThis{position:relative;float:left;width:100%;} 
.licitateThis a.licitate{display:block;float:left;padding:2px 0 4px;width:100%;background-color:#eee;text-shadow:#fff 1px 1px 1px;text-decoration:none;font-weight:bold;font-size:115%;border:1px solid #fff;border-radius:3px;text-align:center;letter-spacing:-0.02em;text-transform:uppercase;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;} 
.licitateThis a.licitate:hover,.licitateThis:hover a{background-color:#0071bb;text-shadow:#666 1px 1px 1px;color:#fff;} 

PS: Форма им пытаются представить его в регистрационную форму, и он расположен в default.ctp, поэтому он может быть использован в каждой страницы.

Проблема решена:

CSS (создан новый класс):

.loginSubmit {color:#0071bb;outline:none; display:block;float:left;padding:2px 0 4px;width:100%;background-color:#eee;text-shadow:#fff 1px 1px 1px;text-decoration:none;font-weight:bold;font-size:115%;border:1px solid #fff;border-radius:3px;text-align:center;letter-spacing:-0.02em;text-transform:uppercase;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;} 
.loginSubmit:hover {background-color:#0071bb;text-shadow:#666 1px 1px 1px;color:#fff;} 

PHP:

<button type="submit" class="loginSubmit">Sign In</button> 
<?php echo $form->end(); ?> 

Спасибо.

ответ

1

Что вы пытаетесь сделать здесь? Любая причина, по которой вам нужно использовать якорь <a> тег для вашей кнопки отправки?

Если вы хотите, чтобы ваша кнопка отправки выглядела как ссылка, вы можете сделать это с помощью css.

Или если вы просто хотите, чтобы положить ваши кнопки где-нибудь еще, кроме рядом с </form> тега представить, то вы можете просто положить <button type="submit" class="licitate">Sign In</button> где-нибудь внутри формы и использовать <?php echo $form->end(); ?>, чтобы закрыть форму.

+0

Также можно использовать вместо тега

+0

У меня есть css costumization под названием licitation, и я не буду использовать его в моей кнопке отправки, но я не знаю, как это сделать. : S – Canastro

+0

вы все еще можете сделать это на ''. Вам просто нужно немного настроить CSS. Попробуйте удалить определение 'a' на' a.licitate' в CSS. Хотя вам нужно будет использовать javascript вместо: наведите указатель мыши на эффект mouseover – jpdelatorre

-1

Да, но это обычно не очень хорошая идея. Вы собираетесь должны использовать JavaScript ..

<a href="#" onclick="document.formName.submit()"> 

с CakePHP может быть

<?php echo $html->link(__("Sign In", true), array("type" => "Sign In", 'class'=>'licitate', 'onClick' => 'document.formName.submit()')); ?> 
+0

если я поставил: ' link (__ ('Sign In', true), array ('type' => 'Sign In', 'class' => 'licitate', 'onClick' => 'document.UserLoginForm.submit() ')); ?> 'созданный html - это «Sign In», и он не работает. – Canastro

+0

Параметры просто неправильные, вот и все. Проверьте метод ссылок в документах. Вы хотите, echo $ html-> link (__ ('Sign In', true), null, array ('class' => 'licitate', 'onClick' => 'this.submit(); «)); Документы, http://api.cakephp.org/class/html-helper#method-HtmlHelperlink –

+0

Вам не нужно использовать атрибут 'onclick', встроенный непосредственно в ссылку, на самом деле это плохая форма. Функциональность JavaScript должна быть добавлена ​​как прогрессивное расширение. –

0

Его проблема в том, что якорный тег не может отправить форму без javascript. Ссылка $ html-> делает ссылку, а не тип ввода submit, а не кнопку типа submit.

Если вы хотите просто использовать кнопку, напишите CORRECT html вручную.

... other form code here 
    <button type="submit" class="licitation"> 
     Sign In 
    </button> 
    <?php echo $form->end(); 
+0

Да, это моя проблема, но есть еще одна: класс licitate для якоря, он имеет нормальное состояние и состояние зависания. Здесь это выдержка моего CSS: http://pastebin.com/m4116430 и обычная ссылка, использующая стили css: http://pastebin.com/m2f7af7ab. – Canastro

+0

Итак, у вас нет реальной проблемы. У вас недостаточно знаний о CSS, чтобы стиль элемента кнопки был таким, каким вы хотите, и немного css, которое вы хотите, могло бы работать над элементом, для которого он не предназначался. Почему не google вокруг, как стиль элементов кнопки. Хорошей отправной точкой является плагин для кнопок от blueprintcss.org. Почему вы обертываете span вокруг тега привязки? Есть намного более чистые и семантически лучшие способы сделать это. Даже что-то столь же простое, как класть имя класса на якорный тэг и обертывать текст ссылки в промежутке, будет улучшением. –

0

Если я понимаю, что вы хотите попробовать, если ваш пользователь уже вошел в систему? , если сначала создать функцию, которая проверяет, вошел ли пользователь в систему или нет. Тогда отметьте это

<span class = "licitateThis clearfix"> 
    <?php if(userisalreadyloggedin()) 
    echo '<a href="login.php" class ="licitate"> Singin</a>'; 
    ?> 
</span> 
+0

У меня есть форма входа, где пользователь (который еще не зарегистрирован) может вставить свой логин и пароль, после заполнения этих полей пользователь должен нажать кнопку отправки. Что я пытаюсь сделать: Замените обычную кнопку отправки для ссылки $ html-> с некоторыми стилями CSS. – Canastro

Смежные вопросы