【问题标题】:Contact Form working in Chrome, not in IE/Firefox联系表单在 Chrome 中工作,而不是在 IE/Firefox 中
【发布时间】:2014-05-12 01:32:38
【问题描述】:

我的网站http://www.techcom.co.nz/ 上的联系表格有问题

它在谷歌浏览器上运行良好,但在 IE 和 Firefox 上它不发送任何消息,只是重定向回页面顶部/刷新页面。

这是表单的 php 代码:

// EDIT THE FOLLOWING LINE BELOW AS REQUIRED

$send_email_to = "techcomnz@gmail.com";

function send_email($name,$email,$email_subject,$email_message)
{
global $send_email_to;  

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$headers .= "From: ".$email. "\r\n";

$message = "<strong>Email = </strong>".$email."<br>";
$message .= "<strong>Name = </strong>".$name."<br>";
$message .= "<strong>Message = </strong>".$email_message."<br>";
@mail($send_email_to, $email_subject, $message,$headers);
return true;
}

function validate($name,$email,$message,$subject)
{
$return_array = array();
$return_array['success'] = '1';
$return_array['name_msg'] = '';
$return_array['email_msg'] = '';
$return_array['message_msg'] = '';
$return_array['subject'] = '';

if($email == '')
{
$return_array['success'] = '0';
$return_array['email_msg'] = 'email is required';
}
else
{
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email)) {
  $return_array['success'] = '0';
  $return_array['email_msg'] = 'enter valid email.';  
 }
}

if($name == '')
{
 $return_array['success'] = '0';
 $return_array['name_msg'] = 'name is required';
}
else
{
  $string_exp = "/^[A-Za-z .'-]+$/";
 if (!preg_match($string_exp, $name)) {
  $return_array['success'] = '0';
 $return_array['name_msg'] = 'enter valid name.';
}
}


if($subject == '')
{
 $return_array['success'] = '0';
 $return_array['subject_msg'] = 'subject is required';
}

if($message == '')
{
 $return_array['success'] = '0';
 $return_array['message_msg'] = 'message is required';
}
else
{
if (strlen($message) < 2) {
  $return_array['success'] = '0';
  $return_array['message_msg'] = 'enter valid message.';
}
}
return $return_array;
}

$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$subject = $_POST['subject'];

$return_array = validate($name,$email,$message,$subject);
if($return_array['success'] == '1')
{
send_email($name,$email,$subject,$message);
}

header('Content-type: text/json');
echo json_encode($return_array);
die();

?>

这里是html:

    <fieldset id="contact_form">
      <div id="msgs"> </div>
      <form id="cform" name="cform" method="post" action="">
        <input type="text" id="name" name="name" value="Full Name*" onfocus="if(this.value == 'Full Name*') this.value = ''"
                        onblur="if(this.value == '') this.value = 'Full Name*'" />
        <input type="text" id="email" name="email" value="Email Address*" onfocus="if(this.value == 'Email Address*') this.value = ''"
                        onblur="if(this.value == '') this.value = 'Email Address*'" />
        <input type="text" id="subject" name="subject" value="Subject*" onfocus="if(this.value == 'Subject*') this.value = ''"
                        onblur="if(this.value == '') this.value = 'Subject*'" />
        <textarea id="msg" name="message" onfocus="if(this.value == 'Your Message*') this.value = ''"
                        onblur="if(this.value == '') this.value = 'Your Message*'">Your Message*</textarea>
        <button id="submit" class="button" style=""> Send Message</button>
      </form>
    </fieldset>

任何帮助将不胜感激。

问候

【问题讨论】:

  • 尝试将type="submit" 添加到&lt;button id="submit" class="button" style=""&gt; 这是旧版本IE 的一个已知问题,如果您的问题是这样,点击时不会提交。如果是这样,您也可以尝试使用输入类型的提交按钮,而不仅仅是一个按钮。
  • 要减少内联 JavaScript 的数量,请尝试添加占位符属性:&lt;input type="text" id="foo" placeholder="Foo *" /&gt; 这样,如果您的表单字段为空白,则占位符文本会接管。 (注意这在 IE

标签: php forms google-chrome firefox contact-form


【解决方案1】:

将 action 属性留空将导致大多数浏览器通过在 GET 或 POST 中重新加载表单数据来将表单数据提交到当前页面。

如果这是您的意图,请尝试完全删除 action="",因为已知它会导致旧版浏览器出现问题。

【讨论】:

  • 仍然没有运气,我尝试删除该操作,并尝试包括上面评论的按钮的提交类型,但都无济于事。还有其他想法吗?
  • 我想知道 Chrome 是否正在解析您的内联 JavaScript,但 FF 等中存在错误。我还没有机会测试它,但是你能在 Firefox 中打开控制台并检查特定的错误吗? developer.mozilla.org/en/docs/Tools/Web_Console
  • 感谢您的回复,从昨天开始(我没有改变)联系表单现在开始在 Firefox 中工作,但在 IE 中没有。我的漂亮照片现在可以在 Firefox 中打开多个窗口。我得到的 javascript 错误是:--- 不推荐使用 getUserData() 或 setUserData()。请改用 Wea​​kMap 或 element.dataset。 ---- SyntaxError: 不推荐使用 //@ 来指示 sourceMappingURL 杂注。改用 //# ---- 不推荐使用 getPreventDefault()。请改用 defaultPrevented。 --- 有什么想法吗?
猜你喜欢
  • 2016-02-05
  • 2010-09-21
  • 2023-03-05
  • 2016-09-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2015-02-12
相关资源
最近更新 更多