我想要它,以便如果人们点击发送按钮,那么表格的提交应该停止。
我的目的是提交信息,但让用户保持在同一页面上。
我的JS:
$(document).ready(function () {
$("#kontakt").submit(function () {
return false;
});
HTML:
<form id="kontakt" method="post" action="send.php">
<br>
<input type="text" name="von" id="von" placeholder="name" />
<br>
<input type="text" id="mail" name="mail" placeholder="email" />
<br>
<input type="text" id="betreff" id="betreff " placeholder="betreff" />
<br>
<textarea style="width:500px;height:400px;" id="nachricht" name="nachricht"></textarea>
<input id="submit" type="submit" value="senden"></input>
</form>
<div id? "response"></div>
小提琴:http://jsfiddle.net/gF6wg/
问题是,如果您点击“发送”,表单仍在提交。
答案 0 :(得分:2)
你错过了)};
:
$(document).ready(function () {
$("#kontakt").submit(function () {
return false;
});
)}; // <-- this
你也应该改变这个:
<div id="response"></div>
^ '=' instead of '?'
这绝对有效,请在此处试试:http://jsfiddle.net/gF6wg/3/
更新:这是完整页面,只需将其复制到您的html文件中:http://pastebin.com/CRzKgVhk
以下是一些可用于使用ajax提交表单的简单代码:
$(document).ready(function () {
$("#kontakt").submit(function () {
var empty = $(this).find("input[type=text], textarea").filter(function () {
return $.trim(this.value).length === 0;
}).length;
alert(empty);
if (empty !== 0) {
$("#response").html("Bitte alles schreiben");
} else {
$.post("send.php", $(this).serialize(), function(data){
$("#response").html(data);
});
}
return false;
});
});
以下是此代码的演示:http://jsfiddle.net/mrNHy/1/
答案 1 :(得分:2)
您忘记关闭准备好的功能了。正确的JS应该是这样的:
$(document).ready(function () {
$("#kontakt").submit(function () {
return false;
});
});
您可以使用Mozilla Firefox 错误控制台检查Javascript错误(您可以通过按热键 ctrl + shift + J 在Firefox中显示错误)
答案 2 :(得分:0)
正在使用 DEMO
试试这个
<form id="kontakt" method="post" action="send.php">
<br>
<input type="text" name="von" id="von" placeholder="name" />
<br>
<input type="text" id="mail" name="mail" placeholder="email" />
<br>
<input type="text" id="betreff" id="betreff " placeholder="betreff" />
<br>
<textarea style="width:500px;height:400px;" id="nachricht" name="nachricht"></textarea>
<input id="submit" type="button" value="senden"></input> <!--change type from 'submit' to 'button'-->
</form>
<div id="response"></div>
$(document).ready(function () {
$('#submit').click(function()
{
$.ajax({
url : 'send.php',
type: 'POST',
data: $('#kontakt').serialize(),
success : function(response)
{
$("#response").html(response);
}
});
});
});
你的send.php上的添加了这个
<?php
$data=$_POST['serialize'];
$name=$data['von']; // acceess the data like this
// do your code
?>
答案 3 :(得分:0)
试试这个:
<script>
$("#kontakt").submit(function(event) {
if(!event.cancelable){
event.cancelable=true;
}
event.preventDefault();
var $form = $(this),
von = $form.find( 'input[name="von"]' ).val(),
mail = $form.find( 'input[name="mail"]' ).val(),
betref = $form.find( 'input[name="betref"]' ).val(),
url = $form.attr('action');
/* Send the data using post */
var posting = $.post( url, { von: von, mail: mail, betref: betref } );
/* Put the results in a div */
posting.done(function( data ) {
$( "#result" ).empty().append( data );
});
});
</script>