0

我面临着一个非常奇怪的情况。我有一个JavaScript文件:

/// <reference path="jquery-1.8.2.min.js" />
var compte = 0;
var poste = [];
var posteselectionner = [3];
$(function () {

   jQuery.getJSON("ServiceContactTest.svc/DoWork", null, function () { **//HERE ****

            alert("ds");

   });

   var msg = 1;

   $("#Uploadb").click(function () {

      alert('f');

   });

   $(".test1").click(function () {

      msg = msg + 1;

      $("#li1").html("<a href='#'><img src='images/partners/jquery.png' alt=''></a>");

   });

   $("#info").mouseover(function () {

      $("#info").popover("show");

   });

   $("#info").mouseleave(function () {

      $("#info").popover("hide");

   });

   $("#envoyer").click(function () {

      var erreur = true;

      if (document.getElementById("myFile").value == "") {

         jQuery("#alert2").attr("style", "display:block");
         erreur = false;

      } else {

         jQuery("#alert2").attr("style", "display:none");

      }

      if (compte == 0) {

         jQuery("#alert3").attr("style", "display:block");
         erreur = false;

      } else {

        jQuery("#alert3").attr("style", "display:none");
      }

      if (erreur == true) {

        jQuery.getJSON("ServiceContactTest.svc/DoWork", null, function () {  **//HERE ****

            alert("ds");

        });

        alert('doo3');
      }

    return erreur;

});

});

如您所见,我在页面加载中绑定了一些事件。但我要指出的是 web 方法的 FIRST 调用和 SECOND 调用:

1-第一个调用在页面加载中运行:

jQuery.getJSON("ServiceContactTest.svc/DoWork", null, function () { **//HERE ****

    alert("ds");

});

2-Event Click输入“envoyer”中的第二个:

$("#envoyer").click(function () {

      var erreur = true;

      if (document.getElementById("myFile").value == "") {

         jQuery("#alert2").attr("style", "display:block");
         erreur = false;

      } else {

         jQuery("#alert2").attr("style", "display:none");

      }

      if (compte == 0) {

         jQuery("#alert3").attr("style", "display:block");
         erreur = false;

      } else {

        jQuery("#alert3").attr("style", "display:none");
      }

      if (erreur == true) {

        jQuery.getJSON("ServiceContactTest.svc/DoWork", null, function () {  **//HERE ****

            alert("ds");

        });

        alert('doo3');
      }

    return erreur;

  });

我遇到的问题是,第一个电话工作得很好,但第二个电话根本不起作用。

我知道第二次调用的代码不会因为alert('doo3');被调用而引发错误。

这是我的网络方法服务:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
using System.Text;

namespace CvContact
{
    [ServiceContract(Namespace = "")]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class ServiceContactTest
    {
       [OperationContract]
       [WebGet(ResponseFormat = WebMessageFormat.Json)]
       public void DoWork()
       {
            return;
       }
    }
 }

这是我的html:

<input id="envoyer" type="submit" class="btn btn-danger" runat=server value="Postuler !" ClientIdmode="static" />

我真的不知道我做错了什么。你知道是什么原因造成的吗?工作page load,但坚持下去Event

4

1 回答 1

4

您需要防止提交按钮上的默认行为,否则如果“erreur”= true,您的页面将重新加载:

$("#envoyer").click(function (e) {
    e.preventDefault();
    //code here

  if(!erreur)
     $('#myform').trigger('submit');//#myform   because you didn't post your html code
});
于 2013-06-05T19:18:02.483 回答