2011-04-06 4 views
0

My event.preventdefault не работает. Фактически, я хочу, когда пользователь нажмет кнопку добавления, он попросит «сначала ввести поле», если все поле пустым.jquery event.preventdefault problem

Для этого я использую флаг, подобный этому, чтобы предотвратить сохранение данных, если все поля пустые, как показано ниже: (также когда я нажимаю кнопку, на которой отображается поле, и после этого он переходит к функции ajax, даже если я применил event.preventdefault(); я не знаю точно, где я не прав)

Спасибо заранее,

Вот мой код:

<tr> 
     <td> 
      <button type="button" name="add">  //this is my add button 
       Add 
      </button> 
     </td> 
    </tr> 
     $("#tabs").tabs(); 
     $("button").button(); 
     $("button").click(function(event){ 
      var flagg=0; 
      if($("#patient_name").val() == "") 
      { 
       flagg=1; 
      } 
      if(flagg == 1) 
      { 
       alert("enter the patient name!!"); 
       event.preventDefault(); 
      } 

     form_name = $(this).parents("form").attr('name'); 
     var params = $("#" + form_name).serialize(); 
     params=params.replace(/&/g,'~^~^^'); 
     table_name = "patient_info"; 
     button_name = "temp"; 

     $.ajax({ 
      type: "POST", 
      url: "ajax1.php", 
      data: "params=" + params + "&button_name=" + button_name, 
      success: function(msg){ 
       //alert(msg); 
       if (msg == "true") 
       { 
        alert("Patient data sucessfully saved!"); 
        window.location.replace("ivf2.php?id=" + $("#id").val()); 
       } 
       else  
       { 
        //alert("Failed to save, please check and try again!"); 
       } 
     } 
     }); 
    }); 

ответ

0

на линии if(flagg == 1) вы с alling event.preventDefault(), но затем вы продолжаете свой пост ajax. В этот момент вы хотите вернуться через return; из вашего обработчика кликов, чтобы он не продолжал подавать форму.

1

event.preventDefault просто останавливает любое запущенное событие (например, что-то в onclick или href). Это не приводит к остановке вашего собственного кода javascript.

ли это:

if(flagg == 1) 
    { 
     alert("enter the patient name!!"); 
     event.preventDefault(); 
     return; 
    } 
+0

gr8 :) оборотный Thanx – gur