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的代码,我也在想同样的问题。