表单的`submit()`函数在这个代码中定义在哪里?

时间:2011-03-25 01:51:46

标签: php javascript forms submit smarty

我正在从已经创建的网页(php,javascript和smarty)中学习,我保证我一直在努力去理解这段代码,但我的思想不能,我不知道它是如何工作的,我有阅读和阅读,但我仍然不明白。 下一个代码完美无缺,但我不知道如何。这是关于联系表格。 这是原始的php页面:

<?php
include("includes/globals.php");
include("includes/smarty/Smarty.class.php"); 
$vista = new Smarty();
$vista->display('contacto.tpl');
?>

正如你所看到的,它只显示了contacto.tpl,这是(我将只提供有趣的部分):

<link href="{$smarty.const.__SERVER_URL__}css/estilo.css" rel="stylesheet" type="text/css" />
<link href="../css/estilo.css" rel="stylesheet" type="text/css" />
<link href="../css/coeco.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="{$smarty.const.__SERVER_URL__}scripts/jquery.js"></script>

{literal}
<script>
    function validar()
    {
    $('#formContacto').submit();
}
</script>
{/literal}
</head>
<body>
  <form id="formContacto" action="/contacto-enviado.html" method="post">
    <table class="formulario_contacto" cellspacing="0" cellpadding="0">
      <tr>
        <td width="228" height="17">NOMBRE</td>
        <td width="110" height="17">TEL&Eacute;FONO</td>
        <td height="17">E-MAIL</td>
      </tr>
      <tr>
        <td><input class="campo_texto" name="nombre" id="nombre" type="text" /></td>
        <td><input class="campo_texto2" name="telefono" type="text" /></td>
        <td><input class="campo_texto" name="email" id="email" type="text" /></td>
      </tr>
    </table>
    <table class="formulario_contacto" cellspacing="0" cellpadding="0">
      <tr>
        <td height="17">SU MENSAJE</td>
      </tr>
      <tr>
        <td><textarea class="texto_contacto" name="detalles" rows=5></textarea>
          <div align="right"><a class="btn_formulario_contacto2" href="#" onclick="validar()">enviar</a></div></td>
      </tr>
    </table>
  </form>
  {include file="foot.tpl"} </div>
</body>
</html>

所以,好吧,好吧,很好,它从表单中获取数据并使用函数submit()提交它,但是函数submit()定义在哪里?我的意思是,是的,我读过http://api.jquery.com/submit/并且它是一种触发器,但必须在某处定义,对吧?哪里?这段代码怎么可能有效呢? 谢谢! 对不起,我知道我是neeeeeeewbie。

4 个答案:

答案 0 :(得分:1)

submit()方法在“form”DOM元素上定义。 jQuery只是调用该方法在页面上提交表单。

答案 1 :(得分:1)

jQuery使用的提交函数位于jQuery代码本身内部。你正在使用'smarty'模板引擎在你的页面中包含jQuery这行

<script type="text/javascript" src="{$smarty.const.__SERVER_URL__}scripts/jquery.js"></script>

完成后,您现在可以访问jQuery提供的所有功能,例如提交表单的submit()函数。 jQuery的版本有助于让您的提交工作跨浏览器。如果您想在提交功能上看到更多内容,请查看here

答案 2 :(得分:1)

7年后的将来是你。

没有人正确回答您的问题。所以我会尽力的。

<form>是一个HTML对象,具有一些使其与其他HTML元素区分开的特殊属性,就像<button>或链接<a>具有使它们与其他HTML元素区分开的特殊属性一样

尤其是<form>允许将信息发送到服务器。信息通过HTTP请求发送,使用的方法在属性methodGETPOST)中定义,而在HTTP请求中指定了发送请求的URL属性action

通过标准,<form>的工作方式与其他HTML对象一样,受到控制和指定。负责它的官方机构是W3C,这是表格的规范: https://www.w3.org/TR/html52/sec-forms.html

该规范随后由浏览器自由实现,因此行为定义的“位置”的详细信息位于浏览器核心的内部。例如,如果您对Chromium Project(Chrome所基于的核心)足够深入地了解,则可能会找到实现。但是,了解这些规范足以使用它。

回到您的具体示例:

此表单将从创建此表单的客户端页面创建并发送POST请求,并将表单中输入的信息与相对URL /contacto-enviado.html

一起发送

进一步阅读

要全面了解其工作原理,请检查: https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data

答案 3 :(得分:0)

就像你说submitonSubmit事件的触发器。因此,当它调用它时,只是让表单在窗体上调用该事件...默认情况下,它将与单击表单中的submit输入完全相同。