如果表单已提交并成功,则会显示一条警告说“#34;这是成功的"而不是我想让div消失..
JQuery的
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
scrollView.contentOffset = CGPointZero
}
HTML
$(document).ready(function() {
$(":submit").click(function() {
var name= $('#name').val();
var email= $('#email').val();
var varData= 'name=' + name + '&email' + email;
console.log(varData);
$.ajax({
type: "POST",
url: "form.php",
data: varData,
success: function() {
// needs changing
alert("It was success");
}
})
});
});
PHP
<div id="container.form">
<hr>
<label for="name">Name</label>
<br>
<input type="text" name="name" id="name" class="NewsLetter1" />
<br>
<label for="email">Email</label>
<br>
<input type="text" name="email" id="email" class="NewsLetter2" />
<input type="submit" value="Submit">
<hr>
</div>
答案 0 :(得分:1)
这里有几个问题。
首先,您应该挂钩父submit()
的{{1}}事件并使用form
取消它。您当前的代码将忽略AJAX请求并以标准方式提交表单。
其次,您的查询字符串格式不正确 - 您错过了event.preventDefault()
。最好的做法是将对象提供给=
data
属性,部分原因是为了这个原因(避免拼写错误),也因为jQuery会为你编码任何必需的字符。
要解决实际问题,请在您要隐藏的$.ajax
上致电hide()
或fadeOut()
。您需要转义div
中的.
,否则它将被解释为类选择器。试试这个:
id
<div id="container.form">
<form method="post" action="form.php">
<hr>
<label for="name">Name</label><br>
<input type="text" name="name" id="name" class="NewsLetter1" /><br>
<label for="email">Email</label><br>
<input type="text" name="email" id="email" class="NewsLetter2" />
<input type="submit" value="Submit">
<hr>
</form>
</div>
答案 1 :(得分:0)
你可以替换它:
success: function() {
// needs changing
alert("It was success");
}
有了这个:
success: function() {
$('#container\\.form').hide();
}
答案 2 :(得分:0)
1)更好地使用&lt;形式&gt;元素,并使用事件onSubmit。这是真实的方式。
$("#formid").submit(function() {
$.ajax({
type: "POST",
url: "form.php",
data: $("#formid").serialize(),
success: function() {
// needs changing
alert("It was success");
}
})
})
答案 3 :(得分:0)
由于你的id属性中有一个点,并且点用于类过滤,你应该转义那个点:
success: function() {
$('#container\\.form').hide();
}