Jquery 为什么我在提交表单时被重定向?
在这个页面上,我试图通过JQuery创建表单。我想使用action=”通过方法.post()发送数据http://hebrew-transliteration.wz.cz/users/signup.php“但是我被重定向了。问题在哪里?如何使用jQueryAjax成功发布 当我点击发送按钮时,我被重定向Jquery 为什么我在提交表单时被重定向?,jquery,html,ajax,forms,Jquery,Html,Ajax,Forms,在这个页面上,我试图通过JQuery创建表单。我想使用action=”通过方法.post()发送数据http://hebrew-transliteration.wz.cz/users/signup.php“但是我被重定向了。问题在哪里?如何使用jQueryAjax成功发布 当我点击发送按钮时,我被重定向 <script src="https://code.jquery.com/jquery-1.11.3.js"></script> <script type="te
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
if (jQuery) {
// jQuery is loaded
$form = $('<form id=current_sender action="http://hebrew-transliteration.wz.cz/users/signup.php" method=post></form>');
$form.append('<h2>Registrovat ke psaní komentářů</h2>');
$form.append('<label for="name1">Jméno či přezdívka: </label>');
$form.append('<input name=name1 type=input maxlength=15 size=10>');
$form.append('<label for=name2> Příjmení: </label>');
$form.append('<input name=name2 type=input maxlength=20 size=10>');
$form.append('<label for=email> Email:</label>');
$form.append('<input name=email type=input maxlength=40 size=10 value=@>');
$form.append(' <input type=submit value=Send>');
$('footer#footer').append($form);
} else {
alert("JQuery doesn't work");
}
});
$("#current_sender").submit(function(e) {
e.preventDefault(); // avoid to execute the submit
var form = $(this);
var url = form.attr('action');
alert(url);
$.ajax({
type: "POST",
url: url,
data: form.serialize(), // serializes form's elements.
success: function(data) {
alert(data); // show response
}
});
});
</script>
$(文档).ready(函数(){
if(jQuery){
//jQuery已加载
$form=$('');
$form.append('Registrovat ke psaníkomentářůů');
$form.append('Jménoči přezdívka:');
$form.append(“”);
$form.append('Příjmení:');
$form.append(“”);
$form.append('Email:');
$form.append(“”);
$form.append(“”);
$('footer#footer')。追加($form);
}否则{
警报(“JQuery不工作”);
}
});
$(“当前发件人”)。提交(功能(e){
e、 preventDefault();//避免执行提交
变量形式=$(此);
var url=form.attr('action');
警报(url);
$.ajax({
类型:“POST”,
url:url,
数据:form.serialize(),//序列化表单的元素。
成功:功能(数据){
警报(数据);//显示响应
}
});
});
这是因为您正在$(document).ready()
回调之外添加提交事件侦听器,这意味着回调没有正确绑定,因为在运行时可能缺少表单元素
如果将整个块移动到$(document).ready()
中,则应该可以:
$(document).ready(function(){
// jQuery is loaded
$form = $('<form id=current_sender action="http://hebrew-transliteration.wz.cz/users/signup.php" method=post></form>');
$form.append('<h2>Registrovat ke psaní komentářů</h2>');
$form.append('<label for="name1">Jméno či přezdívka: </label>');
$form.append('<input name=name1 type=input maxlength=15 size=10>');
$form.append('<label for=name2> Příjmení: </label>');
$form.append('<input name=name2 type=input maxlength=20 size=10>');
$form.append('<label for=email> Email:</label>');
$form.append('<input name=email type=input maxlength=40 size=10 value=@>');
$form.append(' <input type=submit value=Send>');
$('footer#footer').append($form);
// Add event listener after element is appended to DOM
$("#current_sender").submit(function(e) {
e.preventDefault(); // avoid to execute the submit
var form = $(this);
var url = form.attr('action');
$.ajax({
type: "POST",
url: url,
data: form.serialize(), // serializes form's elements.
success: function(data) {
alert(data); // show response
}
});
});
});
$(文档).ready(函数(){
//jQuery已加载
$form=$('');
$form.append('Registrovat ke psaníkomentářůů');
$form.append('Jménoči přezdívka:');
$form.append(“”);
$form.append('Příjmení:');
$form.append(“”);
$form.append('Email:');
$form.append(“”);
$form.append(“”);
$('footer#footer')。追加($form);
//在元素附加到DOM后添加事件侦听器
$(“当前发件人”)。提交(功能(e){
e、 preventDefault();//避免执行提交
变量形式=$(此);
var url=form.attr('action');
$.ajax({
类型:“POST”,
url:url,
数据:form.serialize(),//序列化表单的元素。
成功:功能(数据){
警报(数据);//显示响应
}
});
});
});
尝试将更改为。它将独立于表单->将事件侦听器添加到此按钮添加事件处理程序($(“#current_sender”).submit()
)的代码位于$(文档)之外。ready()
事件处理程序,因此首先它将事件绑定到所有匹配的表单(没有任何表单,因此这没有任何效果),然后文档准备就绪,然后将表单添加到文档中。@69不,默认情况下,
也是一个提交按钮。您的意思是type=“button”
。谢谢这有助于解决问题。