【问题标题】:JavaScript for HTML Form用于 HTML 表单的 JavaScript
【发布时间】:2008-11-15 07:10:08
【问题描述】:

我是一个有着简单需求的简单灵魂,我正在尝试配置一个表单。我讨厌表格。

它需要有 JavaScript 来传输数据,它需要将包含数据的电子邮件发送到电子邮件地址,并且需要将访问者重定向到 pdf。 CGI 一直让我很困惑,而且我对 JavaScript 了解不多。

我已经完成了 html,但是 post 操作和 JavaScript 让我很生气。找了4个小时。把叉子插在我身上。我已经完成了。

【问题讨论】:

    标签: javascript html forms webforms


    【解决方案1】:

    听起来您需要验证表单,然后将其发送到服务器,然后重新验证(无法插入 JavaScript)并将邮件请求发送到电子邮件服务器。

    我建议将 PHP 用于重新验证表单并将请求发送到电子邮件服务器的服务器,因为它简单且受广泛支持。

    假设你有这个 HTML

    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="script.js"></script>
    <form id="emailForm" method="post" action="mail.php">
        <input type='text' name='firstName' id="firstName"><br>
        <input type='text' name='lastName' id='lastname'><br>
        <input type='submit' value='submit' name='submit'>
    </form>
    

    您可以使用 javascript 和 jQuery 验证用户是否在所有字段中输入了内容。 在文件 script.js 中说你有:

    var formIsOkay = true;
    $(document).ready( function() {
    $('#emailForm').submit( function() {
        $('#emailForm input').each( function() {
             if ( this.val() == '' ) { formIsOkay = false; }
        }
        return formIsOkay;
    }
    }
    

    然后在 email.php 中你会得到这样的东西:

     <?php
     $to =  'email@domain.com';
     $from = 'email@domain.com';
     $subject = 'Form';
     $message = 'Hello, the following variables were supplied:<br>';
     foreach($_POST as $key => $val){
         $message .= "$key = $val<br>";
     }
     $message = wordwrap($message, 70);
     $headers  = 'MIME-Version: 1.0' . "\r\n";
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
     $headers .= "To: $to" . "\r\n";
     $headers .= "From: $from" . "\r\n";
     mail($to, $subject, $message, $headers);
     ?>
    

    为此,您需要在服务器上运行 PHP,并在 php 中设置 SMTP 服务器,但大多数服务器都有这个。 请注意,PHP 是如何立即重新验证表单的,所以当有人提交一个空表单时,它仍然会在电子邮件中发送。

    【讨论】:

      【解决方案2】:

      好的,首先,我们需要澄清您的措辞。 JavaScript 和 Java 是两种截然不同的语言。

      为了发送邮件,您需要使用与 SMTP 服务器结合使用的任何语言,这必须是实际发送电子邮件的语言,而不是客户端的 JavaScript。

      可以在此处找到使用 JavaScript 发布到 SMTP 服务器的示例(尽管我不推荐这种方法,因为 ActiveX 是 IE 独有的): http://www.ostrosoft.com/smtp_component/smtp_javascript.asp

      最终使用 JavaScript,最好的方法是发布到非 SMTP 服务器,然后将数据发送到 SMTP 服务器。

      如果您实际使用 Java,您可以添加一个名为 JavaMail 的可选库,以便更轻松地发送邮件,不过,您需要与 SMTP 服务器通信。

      可以在此处找到 JavaMail 的示例: http://www.javapractices.com/topic/TopicAction.do?Id=144

      【讨论】:

        【解决方案3】:

        你的表单听起来像一个FormMail-form,它是专门为发送邮件而设计的,它实际上不需要javascript,但它肯定需要一些隐藏字段,而且你特别想提取的所有信息都必须有表单中他们自己的部分/字段。

        那么,问题是什么?-)

        【讨论】:

        • 客户端请求了javascript。只是想交付。
        猜你喜欢
        • 1970-01-01
        • 2014-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-15
        相关资源
        最近更新 更多