JQuery Ajax и Scriptaculous Проверка формы - PullRequest
0 голосов
/ 19 февраля 2012

У меня есть форма, использующая проверку подлинности формы scriptaculous, но я использую jquery ajax.Проверка формы работает нормально, прежде чем я добавлю AJAX.Как только я добавляю ajax, это похоже на то, что форма больше не проверяется.Ajax просто присваивает форму без проверки.Это похоже на то, что Ajax обходит проверку.

      <script type="text/javascript">
      jQuery('form').delay(3000).submit(function() {
      string = jQuery("form").serializeArray();

      jQuery.ajax({
    type: "POST",
    url: "../script_insert.php",
    data: string,
    dataType: "html",
    success: function(html){
      jQuery('#Right_Content').hide().html(html).fadeIn("slow");;

       }
       })
       return false;
       });
       </script>

Но когда я удаляю ajax со страницы все вместе, он работает нормально.Страница проверяется.Может кто-нибудь сказать мне, как убедиться, что проверка формы происходит перед отправкой ajax.Я пробовал задержку jquery, но это тоже не работает.Спасибо.

Ответы [ 2 ]

1 голос
/ 19 февраля 2012

Почему бы вам не добавить проверку как первое, что делает .submit()?Таким образом, вы уверены, что форма проверена независимо от того, сколько полей формы были в фокусе.

jQuery('form').submit(function() {
    if (validate()) {
        string = jQuery("form").serializeArray();
        ...
    } else {
        return false;
    }
});
0 голосов
/ 19 февраля 2012
  1. Чтобы избежать дальнейших ошибок, я бы рекомендовал вам использовать абсолютные пути для представлений. Вместо url="../script_insert.php" используйте полный путь "url="http://www.yoursite.com/script_insert.php"

2. Похоже, в вашем скрипте нет «запретить по умолчанию». Есть две вещи, которые вы должны сделать: очистить входы и деления, которые отображают ошибки перед их загрузкой!


Номер 2: вы можете заменить отправку ajax отправкой jQuery, помещенной в

`"$(document).ready(function(){
$('#your_form').submit(function(){
$.post("http://your_site.com/script_insert.php",{ first_variable:$('#first_input_field').val(),second_variable:$('#second_input_field').val(),rand:Math.random()},function(data){
if(data=='yes'){do something}
if(data=='no'){do something else}});
return false;});
});
    });'

А в вашей проверке PHP, если ввод верен и форма верна, сделайте echo "yes" и echo "no" в противном случае. Или любые другие слова, которые вы хотите. Это также учитывает большую гибкость. Отредактируйте вышеуказанное в соответствии с вашими потребностями. Добавьте переменные, как вы хотите, и таким образом все будет JQuery. Если вы хотите увидеть действительный пример, отправьте мне личное сообщение, и я покажу вам, как именно это работает. С приведенным выше кодом у меня никогда не было проблем вообще. И, насколько я могу судить, jQuery также автоматически очищает входные данные перед отправкой запроса на публикацию, что обеспечивает вам некоторую форму безопасности.

...