Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.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
Jquery 为什么我在提交表单时被重定向?_Jquery_Html_Ajax_Forms - Fatal编程技术网

Jquery 为什么我在提交表单时被重定向?

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

在这个页面上,我试图通过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="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>&nbsp;&nbsp;Příjmení: </label>');
              $form.append('<input name=name2 type=input maxlength=20 size=10>');
              $form.append('<label for=email>&nbsp;Email:</label>');
              $form.append('<input name=email type=input maxlength=40  size=10 value=@>');
              $form.append('&nbsp;<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>&nbsp;&nbsp;Příjmení: </label>');
    $form.append('<input name=name2 type=input maxlength=20 size=10>');
    $form.append('<label for=email>&nbsp;Email:</label>');
    $form.append('<input name=email type=input maxlength=40  size=10 value=@>');
    $form.append('&nbsp;<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”
。谢谢这有助于解决问题。