自定义表单按钮

时间:2011-01-26 11:46:56

标签: javascript html

好的伙计们,我有这个代码:

<a class="button" href="#"><span>SEND</span></a>

我如何在提交表单按钮中转换它?

我试过这个,但是不行......

        <div class="contato_form" id="contato_form">                    
        <form id="form1" name="form1" method="post" action="javascript:envia_contato();">
            <p><label for="nome">Name:</label><input class="campo_contato" type="text" name="nome" id="nome" /></p>
            <p><label for="email">Email:</label><input class="campo_contato" type="text" name="email" id="email" /></p>
        </form>
    <div class="clear">
    <p><a class="botao" href="#" onclick="javascript:envia_contato();"><span>SUBMIT</span></a></p>
    </div>
    </br>
    </div>

3 个答案:

答案 0 :(得分:2)

你有几个问题。

  1. 您的表单操作 不应与提交按钮的 onclick 相同。表单操作应该是将接收您发送的数据的页面。因此,您必须放置一个不仅是HTML而且处理页面服务器端的页面(即PHP,ASP,ASP.NET,JSP等)。

  2. 您的javascript函数envia_contato未在您共享的代码中定义,因此您必须在使用它之前在HTML中的某个位置(使用script标记)定义它(如Bhanu建议的):

    <script>
    function envia_contato()
    {
        form1.submit();
    }
    </script>
    <div class="contato_form" id="contato_form">
        <form id="form1" name="form1" method="post" action="/echo/json/">
            <p>
                <label for="nome">Name:</label>
                <input class="campo_contato" type="text" name="nome" id="nome" />
            </p>
            <p>
                <label for="email">Email:</label>
                <input class="campo_contato" type="text" name="email" id="email" />
            </p>
        </form>
        <div class="clear">
            <p><a class="botao" href="#" onclick="envia_contato(); return false;"><span>SUBMIT</span></a></p>
        </div>
        <br/>
    </div>
    

    或者你可以放弃envia_contato函数并直接调用提交(就像JK那样):

    <p><a class="botao" href="#" onclick="form1.submit(); return false;"><span>SUBMIT</span></a></p>
    

    onclick结尾处的return false;将避免在调用javascript后引发更多事件,因此如果您返回false,则不会执行redirección到#(此类重定向不会非常重要,但这样做会完全符合您的需要,而且您不需要重定向。)

  3. 以下事情并不是真正的问题,因为大多数HTML解析器无论如何都会起作用(但你可能有兴趣知道这一点):

    1. 但是,当您附加javascript事件(例如onclick)时,您不需要javascript:,当需要其他内容时,您需要它(例如href中只需要一个链接而不是javascript,所以你使用前缀来定义javascript)。

    2. 您的 br 标记在/之前有br,而且应该只是<br><br/>

答案 1 :(得分:0)

尝试使用:

<a class="botao" href="#" onclick="form1.submit()">

答案 2 :(得分:0)

您必须在锚标记onclick事件

上提交表单
function envia_contato()
{
  document.form1.submit();
}