2015-08-19 4 views
1

Я разрабатываю мобильное приложение jquery. В приложении есть форма, которую пользователь должен отправить, и я поместил кнопку отправки в правой части заголовка. когда пользователь выполнил заполнение формы и нажатие кнопки отправки с классом "ui-btn-right", он не может отправить.Отправить кнопку в заголовке не удается отправить

$(document).ready(function(){ 
    $('.ui-btn-right').on('click', function(event) { 
     $("#form1").on('submit',function(event){ 
     event.preventDefault(); 
     data = $(this).serialize(); 

     $.ajax({ 
      type: "POST", 
      url: "register.php", 
      data: data 
     }).success(function() { 
      $("input[type=text]").val(""); 
     }); 
     }); 
    }); 
}); 

HTML

<a href='#' class='ui-btn-right' id="button" >Register</a> 
+0

Получаете ли вы какие-либо сообщения об ошибках в своих инструментах разработчика? –

+0

Хорошо бы видеть структуру HTML. Я не понимаю, почему событие submit находится внутри события click. Конечно, пользователю предоставляется форма, поэтому клик даже не нужен –

+0

Вопрос; нажатие кнопки работает _second_ время, когда вы нажимаете на нее? –

ответ

3

Просто принимая догадку здесь, так как мы не можем видеть разметку. Но похоже, что вы не отправляете форму, когда вы нажимаете кнопку, вы просто подключаете событие отправки. Попробуй это?

$(document).ready(function(){ 
 
    $('.ui-btn-right').on('click', function(event) { 
 
     $('#form1').submit(); 
 
    }); 
 
    
 
    $("#form1").on('submit',function(event){ 
 
    event.preventDefault(); 
 
    data = $(this).serialize(); 
 

 
    $.ajax({ 
 
     type: "POST", 
 
     url: "register.php", 
 
     data: data 
 
    }).success(function() { 
 
     $("input[type=text]").val(""); 
 
    }); 
 
    }); 
 
});

+0

Это перемещает привязку представления формы за пределами щелчка кнопки, которая без необходимости привязывает событие при загрузке, замедляя страницу, а не когда она определенно будет использоваться. ОП было в правильном месте, и требовалось лишь очень небольшое изменение. – Popnoodles

+0

Опять же, это предположения, не видя разметки. Вы предполагаете, что кнопка, о которой идет речь, является единственным способом отправить форму. Мой ответ позволяет отправить форму, если есть другие способы за пределами кнопки. Разметка помогла бы здесь ... – Jeff

+0

Вполне согласен, я не знаю, почему я пошел против того, что я обычно стону, когда люди используют по щелчку кнопки, а не при отправке формы. – Popnoodles

2

Попробуйте это?

$(document).ready(function(){ 

     $("#form1").on('submit',function(event){ 
     event.preventDefault(); 
     data = $(this).serialize(); 

     $.ajax({ 
      type: "POST", 
      url: "register.php", 
      data: data 
     }).success(function() { 
      $("input[type=text]").val(""); 
     }); 
     }); 

    $('.ui-btn-right').on('click', function(event) { 
     $("#form1").submit(event); 
    }); 
}); 
+0

Это, скорее всего, имеет смысл помещать ваш код внутри обработчика событий .ui-btn-right onclick ... – evilunix

0

Если кнопка не в форме, и вы хотите, чтобы уволила событие представить вам нужно сделать что-то вроде:

$('.ui-btn-right').on('click', function(event) { 
    $("#form1").submit(function(event){ 
    event.preventDefault(); 
    stuff(); 
    }); 
}); 
+0

Как это иначе походит на то, как код проблемы сейчас? –

+0

Он не вызывает событие отправки. – Neabfi

+1

.... И вы не –

0

Возможно мне нужно больше данных, чтобы дать ответ, но мы можем пойти сюда.

$('.ui-btn-right').on('click', function(event) { 
    check here any alert/console message is working 
} 

теперь у вас есть создать $("#form1").on('submit

, но представить его вам нужно сделать

$("#form1").submit(); 

вручную, как я предполагаю, что эта кнопка находится за пределами вашей формы.

+0

Добро пожаловать в переполнение стека. Если вы предоставите когерентный ответ, отформатированный правильно, он, скорее всего, будет полезен. – Popnoodles

+0

Спасибо @Popnoodles, я отредактировал свой ответ. – Parth

Смежные вопросы