You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

网站联系表单邮件消息返回[object HTMLSpanElement]问题求助

嘿,我帮你找到了问题的根源!邮件里消息字段返回[object HTMLSpanElement],是因为你在JS代码里错误引用了DOM元素本身,而非表单输入框的内容,具体问题和修复方案如下:

问题分析
  1. 变量混淆导致错误引用DOM元素
    你的HTML里,消息输入框是<textarea id="subject" name="message">,在JS里你已经正确获取了它的值并存到message变量里,但在AJAX请求的data参数中,你传的却是message1——而message1是页面上那个用于显示错误提示的<span id="message1"></span>元素,不是输入框的内容!AJAX把这个DOM元素对象传给PHP后,PHP就将其转换成了[object HTMLSpanElement]字符串。

  2. HTML标签重复id问题
    你的textarea标签写了两个id="subject",这属于无效HTML,虽然浏览器可能会兼容,但会导致潜在的DOM选择错误,需要修正为唯一id。

修复代码

1. 修正mail.js代码

function submit_form() { 
    var letters = /^[A-Za-z]+$/; 
    // 正确获取消息输入框的值
    var message = document.getElementById('subject').value; 
    // 补充获取其他字段的值(需确保对应输入框的id正确)
    var name = document.getElementById('name').value; 
    var email = document.getElementById('email').value; 
    var contactno = document.getElementById('contactno').value;

    $.ajax({ 
        type:'post', 
        url:'enquiry.php', 
        // 将message1替换为正确的message变量,同时给参数编码避免特殊字符问题
        data: 'name=' + encodeURIComponent(name) + 
              '&email=' + encodeURIComponent(email) + 
              '&contactno=' + encodeURIComponent(contactno) + 
              '&message=' + encodeURIComponent(message), 
        success:function(data) { 
            if(data=="1") { 
                $('#success').html("Your message has been sent successfully.");
            } else {
                // 补充失败提示逻辑,提升用户体验
                $('#success').html("Oops! Message sending failed, please try again later.");
            }
        }
    });
}

2. 修正HTML里的重复id

<input type="text" name="contactno" maxlength="10" pattern="[1-9]{1}[0-9]{9}" id="contactno" placeholder="Enter 10 digit Contact Number" class="footer-form1" value="" onchange="removeerr();" required><br>
<span id="contact1"></span>
<!-- 移除重复的id="subject",保留唯一id -->
<textarea id="subject" name="message" placeholder="Write your message here.." class="footer-massage" onchange="removeerr();" required></textarea>
<span id="message1"></span>
<span id="success"></span>
额外建议
  • PHP接收参数时,建议用htmlspecialchars()过滤用户输入,避免XSS攻击(因为你的邮件是HTML格式):
    $name = htmlspecialchars($_POST['name']);
    $email = htmlspecialchars($_POST['email']);
    $contactno = htmlspecialchars($_POST['contactno']);
    $message1 = htmlspecialchars($_POST['message']);
    
  • 确保JS里的name、email变量对应的输入框id正确,否则这些字段也会出现传递错误。

内容的提问来源于stack exchange,提问作者wwe_fan9417

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:32:49