2012-03-20 184 views
0

如何在彈出窗口中顯示錯誤消息,並且如果成功消息隱藏所有表單字段並顯示成功消息。如何在彈出窗口中顯示錯誤消息jquery

目前我正在這樣做: 在窗體上方放置成功消息並在窗體關閉後關閉它。 錯誤消息div放置在窗體的上方,即在成功div內。請建議我最好的方法。給一些示例代碼,以便我可以實現這一點。

我的html代碼:

<div id="successMessage"> 
<form method="POST" id="update_form" onsubmit = "return false;"> 
    <div id="errorMessage"></div> 
    <table align="center"> 
     <tr> 
      <td align="right">First Name:</td> 
      <td align="left"><input type="text" name="firstName" value="<?php echo $firstName; ?>" /> 
      </td> 
     </tr> 
     <tr> 
      <td align="right">Last Name:</td> 
      <td align="left"><input type="text" name="lastName" value="<?php echo $lastName; ?>" /> 
      </td> 
     </tr> 
     <tr> 
      <td align="right" colspan="2"> 
        <input type="hidden" name="userId" value="<?php echo $userId; ?>" /> 
        <input type="button" name="updateUserDetails" value="Update" onclick="updateUserDetails();"> 
      </td> 
     </tr> 
    </table> 
</form> 
</div> 

jQuery代碼:

function editUserDetails(userId, operation){ 
    currentOperation = operation; 
    $('#editUserDetails').dialog('open'); 
    $('#editUserDetails').html("Loading..."); 
    $.ajax({ 
      type: "POST", 
      url: "editUserDetails.php?userId="+userId,     
      data: "", 
      success: function(msg){ 
       $('#editUserDetails').html(msg); 
      }, 
      error:function(msg){ 
       //alert(msg); 
       $('#editUserDetails').dialog("close"); 
      } 
    }); 
} 

function updateUserDetails(){ 
     $.ajax({ 
       type: "POST", 
       url: "updateUserDetails.php",     
       data: $("#update_form").serialize(), 
       success: function(msg){ 
        if(msg=="Updated Successfully") 
        { 
         $('#successMessage').html(msg); 
        } 
        else 
        { 
         $('#errorMessage').html(msg); 
        } 
       }, 
       error:function(msg){ 
        $('#editUserDetails').dialog("close"); 
       }    
     }); 
    }); 
}); 
+0

在我看來,你應該單獨形式和消息,所以消息的佈局是獨立於形式的。 (IE。你稍後想要一些奇妙的警告框樣式或使用驗證插件)。偉大的結構,不要限制元素。 – 2012-03-20 07:17:02

回答

1

首先,不裹成功DIV中的形式,把它分開這樣的:

<div id="successMessage"></div> 

接下來,在ajax成功函數中,只需執行以隱藏窗體並顯示消息:

success: function(msg){ 
     if(msg=="Updated Successfully") 
     { 
      $("#successMessage").html(msg); 
      $("#update_form").hide(); 
     } 
     else 
     { 
      $("#errorMessage").html(msg); 
      $("#errorMessageDialog").dialog(); 
     } 
} 

對於錯誤消息,它有點棘手。首先,錯誤信息的div改變這樣的事情:

<div style="display: none;" id="errorMessageDialog"> 
<p id="errorMessage"></p> 
</div> 

然後在阿賈克斯誤差函數開集的錯誤消息,打開這樣的對話:

error:function(msg){ 
     $("#errorMessage").html(msg); 
     $("#errorMessageDialog").dialog(); 
} 
+0

仍然同樣的問題顯示在表單字段上方的成功消息它不隱藏表單元素。 – vvr 2012-03-20 07:50:47

+0

發佈您的新的更新代碼 – c0deNinja 2012-03-20 16:50:32