2013-03-12 2 views
-1

Я пытаюсь проверить форму с помощью Ajax.I проверить каждую строку с этим кодом: Данные перейти к formValidate.php файлу:затем Отключить включить кнопку отправить

$(document).ready(function(){ 
$("form").submit(function(event){ 
    stuId= $("input[name='stuId']").val(); 
    stuName= $("input[name='stuName']").val(); 
    stuDoB= $("input[name='stuDoB']").val(); 
    stuAdd= $("input[name='stuAdd']").val(); 

    $.get("formValidate.php?stuId="+stuId,function(data){ 
     $(".formCheck:eq(0) span").text(data); 
     $.get("formValidate.php?stuName="+stuName,function(data){ 
      $(".formCheck:eq(1) span").text(data); 
       $.get("formValidate.php?stuDoB="+stuDoB,function(data){ 
       $(".formCheck:eq(2) span").text(data); 
       $.get("formValidate.php?stuAdd="+stuAdd,function(data){ 
        $(".formCheck:eq(3) span").text(data); 
       }); 
      }); 
     }); 
    }); 
    event.preventDefault(); 
    for(var i=0;i<=3;i++) { 
     var a= $(".formCheck:eq("+i+") span").text(); 
     if(!a) 
      break; 
     if(i==3) 
      $("form").unbind('submit').submit(); 
    } 
     }); 
    }); 

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

+0

Если вы имеете дело с простой формой [чья разметка вы также должны указать], то сделать запрос проверки на строку полностью можно избежать. Подтвердите клиентскую форму формы, а затем предоставите сервер правилам проверки. – moonwave99

+0

Вы пробовали запускать событие click для кнопки отправки вместо submit evt? – jtheman

+0

Но я должен проверить входные данные, например, в базе данных нет одинаковых данных. Я думаю, что Ajax в порядке с этим @jtheman. У меня в форме есть кнопка type = submit –

ответ

0

ОК, прежде всего, это подтверждение, вы используете действительно должно быть просто «вишня на пироге». И поможет вам достичь более удобной для пользователя формы. Вы действительно должны рассмотреть возможность использования некоторых предопределенных библиотек проверки формы. И последнее, но не менее важное: всегда проверять на стороне сервера.

Чтобы объяснить, что это не так, пожалуйста, посмотрите на эту jsfiddle: http://jsfiddle.net/JLySr/

Каждый мало места в тексте будет разрешить/запретить вам пройти проверку. Таким образом, после первого AJAX проверки, вероятно, возвращать место или что-то подобное ... Вы можете улучшить этот красивый по Triming текст:

var a= $(".formCheck:eq("+i+") span").text().trim(); 

Но все-таки это НЕ реальной проверки. Как вы, возможно, знаете, действительно очень легко удалить часть веб-страницы на стороне клиента.

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