使用html链接作为表单按钮

时间:2009-12-30 05:01:28

标签: php forms cakephp button

我有一个登录表单,用户(尚未登录)可以插入他的登录名和密码,在填写这些字段后,用户必须按下提交按钮。

我要做的是:用一些css样式替换$ html->链接的正常提交按钮。

无论如何,我可以使用这样的东西:

<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(); ?>

感谢。

4 个答案:

答案 0 :(得分:1)

你想在这做什么?您需要为提交按钮使用锚<a>标记的任何原因吗?

如果你想要的只是让你的提交按钮看起来像一个链接,那么你可以使用css。

或者,如果您只想将提交按钮放在</form>标记旁边的其他位置,那么您只需将<button type="submit" class="licitate">Sign In</button>放在表单内的任何位置,然后使用<?php echo $form->end(); ?>关闭形式。

答案 1 :(得分:0)

他的问题是锚标签无法在没有javascript的情况下提交表单。 $ html-&gt;链接创建一个链接,而不是提交的输入类型,而不是提交类型的按钮。

如果您只想使用按钮,请手动编写CORRECT html。

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

答案 2 :(得分:0)

如果我理解了您想要尝试的问题,如果您的用户已经登录? 如果是这样,首先创建一个检查用户是否登录的函数。 然后检查

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

答案 3 :(得分:-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()')); ?>