J'ai une vue simple qui a 2 zones de texte et 1 entrée de fichier.Retour d'une vue contenant un fichier de type d'entrée - Erreur d'exécution de Microsoft JScript: Objet attendu
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<iLoyalty.BackOfficePortal.Models.SegmentModel>" %>
<% using (Html.BeginForm("SaveSegment", "Segment", FormMethod.Post, new { id = "SegmentForm", enctype = "multipart/form-data" }))
{ %>
<div class="StContent">
<h3>
<%= iLoyalty.BackOfficePortal.Globals.GetResourceText("CardSegmentInsert")%></h3>
<br />
<%= Html.HiddenFor(model => model.ApplicationName, new { id = "ApplicationName" })%>
<%--<%= Html.HiddenFor(model => model.SegmentID, new { id = "SegmentID" })%>--%>
<table width="95%" border="0" cellspacing="1" cellpadding="4" class="Table" style="margin: 0 0 0 10px">
<tr class="Tr0">
<td style="width: 200px" class="Tr1">
<%= iLoyalty.BackOfficePortal.Globals.GetResourceText("ApplicationName")%>
</td>
<td>
<span id="ApplicationName">
<%= Model.ApplicationName %></span>
</td>
</tr>
<tr class="Tr0">
<td style="width: 200px" class="Tr1">
<%= iLoyalty.BackOfficePortal.Globals.GetResourceText("CardSegmentName")%>
</td>
<td>
<%= Html.TextBoxFor(model => model.SegmentName, new { id = "SegmentName", @class = "txtBox" })%>
</td>
</tr>
<tr class="Tr0">
<td style="width: 200px" class="Tr1">
<%= iLoyalty.BackOfficePortal.Globals.GetResourceText("RewardRate")%>
</td>
<td>
<%= Html.TextBoxFor(model => model.GainRate, new { id = "GainRate", @class = "txtBox" })%>
</td>
</tr>
<tr class="Tr0">
<td style="width: 200px" class="Tr1">
</td>
<td>
<input name="PostedFile" id="PostedFile" type="file" class="txtBox" style="width: 200px" />
</td>
</tr>
<tr class="Tr0">
<td class="Tr1" colspan="2" style="text-align: right">
<input id="saveBtn" type="submit" class="button" value='<%= iLoyalty.BackOfficePortal.Globals.GetResourceText("Add")%>' />
</td>
</tr>
</table>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#saveBtn').click(function() {
//BlockPage();
var options = {
target: '#contentDiv',
success: function() {
BlockDivSuccess('generalCover');
}
};
$('#SegmentForm').ajaxForm(options);
});
});
</script>
<% } %>
Après avoir cliqué sur saveBtn Je vois que en mode débogage il affiche les données appropriées à l'action appropriée et il fonctionne bien. Et dans firebug je vois la réponse à l'appel ajax est juste comme ce que je m'attends à avoir. Mais seulement dans -à-dire je reçois une erreur javascript qui dit simplement: Erreur d'exécution Microsoft JScript: objet attendu
Après avoir supprimer la ligne ci-dessus, tout est ok dans tous les navigateurs. Mais j'ai besoin de ça aussi.
<input name="PostedFile" id="PostedFile" type="file" class="txtBox" style="width: 200px" />
Avez-vous une idée sur ce problème? Il est intéressant que cela se produise seulement dans ie.
Merci à l'avance,
Peut-on voir la définition de 'BlockDivSuccess'? – belugabob
Je ne pense pas que la source du problème est 'BlockDivSuccess'. Je l'utilise aussi dans d'autres vues. Et si je commente la ligne qui appelle 'BlockDivSuccess', le problème se produit à nouveau. – anilca
Le contenu que vous renvoyez de l'appel ajax inclut-il déjà un élément avec un id = "fichier_affiché"? ie se plaindra si vous essayez de dupliquer des ID dans une requête ajax – Clicktricity