2011-04-06 11 views
0

は私のevent.preventdefaultが動作していません。実際には、ユーザーが[追加]ボタンをクリックしたときに、すべてのフィールドが空白の場合は「フィールドを最初に入力する」と尋ねられます。jqueryのevent.preventdefault問題

このため、次のようにすべてのフィールドが空白の場合にデータを保存しないようにフラグを使用します(フィールドを入力するとボタンをクリックするとijax関数にも適用されます) event.preventdefault();私が間違っている場所を正確に私はここで

が私のコードである、)事前に

感謝を知らない:あなたはCですif(flagg == 1)ラインで

<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

event.preventDefault()を実行していますが、次にあなたのajax投稿を続けています。その時点で、クリックハンドラからreturn;経由で返信して、フォームの送信を継続しないようにします。

1

event.preventDefaultは、他の添付イベントの実行を停止するだけです(例:onclickまたはhref)。それはあなた自身のJavaScriptコードを停止させません。

この操作を行います。

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

GR8 :)その作業ありがとうを – gur