Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么jquery不设置我的显示css值?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么jquery不设置我的显示css值?

Javascript 为什么jquery不设置我的显示css值?,javascript,jquery,Javascript,Jquery,这是我的脚本和函数: <script> function post() { var name = document.getElementById("name").value; var email = document.getElementById("email").value; var message = document.getElementById("message").val

这是我的脚本和函数:

<script>
        function post()
        {
            var name = document.getElementById("name").value;
            var email = document.getElementById("email").value;
            var message = document.getElementById("message").value;
            var sub = document.getElementById("sub").value;

            if(name && email && message && sub)
            {
            $.ajax
            ({
              type: 'post',
              url: 'email.php',
              data:
              {
                 user_name:name,
                 user_email:email,
                 user_message:message,
                 user_sub:sub
              },
              success: function (response)
              {

              }
            });
            }
            return false;
        }
        $(document).ready(function(){
            $(document).ajaxStart(function(){
                $("#mailalert").css("display", "");
            });
        });
    </script>

职能职位()
{
var name=document.getElementById(“name”).value;
var email=document.getElementById(“email”).value;
var message=document.getElementById(“message”).value;
var sub=document.getElementById(“sub”).value;
如果(姓名和电子邮件和消息和子邮件)
{
$.ajax
({
键入:“post”,
url:'email.php',
数据:
{
用户名:name,
用户_电子邮件:电子邮件,
用户消息:消息,
用户_sub:sub
},
成功:功能(响应)
{
}
});
}
返回false;
}
$(文档).ready(函数(){
$(文档).ajaxStart(函数(){
$(“#mailalert”).css(“显示”,即“);
});
});
它应该改变什么:

<div class="mailalert" id="mailalert" style="display: none">
<strong>Thank you for your letter.</strong>
</div>

谢谢你的来信。

为什么不将显示值更改为“”?它成功地发送了电子邮件,因此运行良好。

您似乎遗漏了可能包含实际错误的部分代码。我已经测试了下面的代码,它可以正常工作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script>
</head>
<body>

<form id="mail_form" action="email.php">
    Name:<br>
    <input type="text" id="name" name="name">
    <br>
    Email:<br>
    <input type="text" id="email" name="email">
    <br>
    Message:<br>
    <textarea rows="3" id="message" name="message"></textarea>
    <br>
    <br><br>
    <input type="submit" value="Submit">
</form>

<div class="mailalert" id="mailalert" style="display: none">
    <strong>Thank you for your letter.</strong>
</div>

<script>

    $("#mail_form").submit(function(e) {
        e.preventDefault(); // avoid to execute the actual submit of the form.
        var name = document.getElementById("name").value;
        var email = document.getElementById("email").value;
        var message = document.getElementById("message").value;

        if(name && email && message) {
            var form = $(this);
            var url = form.attr('action');

            $.ajax({
                type: "POST",
                url: url,
                data: form.serialize(), // serializes the form's elements.
                success: function (data) {
                    // alert(data); // show response from the php script.
                    // I'd put $("#mailalert").css("display", ""); here, otherwise it doesn't make sense to display a thank you msg.
                }
            });
        }
    });

    $(document).ready(function(){
        $(document).ajaxStart(function(){
            console.log("I'm here")
            $("#mailalert").css("display", "");
        });
    });
</script>
</body>
</html>

标题
名称:

电子邮件:

信息:



谢谢你的来信。 $(“#邮件表格”)。提交(功能(e){ e、 preventDefault();//避免执行表单的实际提交。 var name=document.getElementById(“name”).value; var email=document.getElementById(“email”).value; var message=document.getElementById(“message”).value; 如果(姓名、电子邮件和消息){ 变量形式=$(此); var url=form.attr('action'); $.ajax({ 类型:“POST”, url:url, data:form.serialize(),//序列化表单的元素。 成功:功能(数据){ //警报(数据);//显示来自php脚本的响应。 //我会把$(“#mailalert”).css(“display”,“display”)放在这里,否则显示感谢消息就没有意义了。 } }); } }); $(文档).ready(函数(){ $(文档).ajaxStart(函数(){ log(“我在这里”) $(“#mailalert”).css(“显示”,即“); }); });

提示: 我会移动
$(“#mailalert”).css(“display”,“display”)改为ajax成功函数。

来自

这些方法注册在页面上的任何Ajax请求发生某些事件(如初始化或完成)时要调用的处理程序如果jQuery.ajaxSetup()中的
global
属性为true,则会在每个Ajax请求上触发全局事件,默认情况下为true。注意:对于跨域脚本或JSONP请求,无论全局事件的值是多少,都不会触发全局事件

因此,在ajax设置中,要启用全局事件,只需添加
global:true
。这应该能解决你的问题

。。。
$.ajax
({
键入:“post”,
url:'email.php',
全球:没错,
数据:
{
用户名:name,
用户_电子邮件:电子邮件,
用户消息:消息,
用户_sub:sub
},
成功:功能(响应)
{
}
});
...

您希望将其设置为“”做什么?可能相关@KevinB,让元素可见,这样就可以了。你是否在阻止默认表单提交,所以它只发送AJAX?@Barmar我正在尝试复制OP的代码,我也在想同样的问题。