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" の 2 番目:

$("#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;

  });

私が抱えている問題は、最初の呼び出しは非常にうまく機能しますが、2 番目の呼び出しはまったく機能しないことです。

が呼び出されるため、2 番目の呼び出しのコードがエラーをスローしないことはわかっていますalert('doo3');

これが私のWebメソッドサービスです:

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 に答える