当前位置: 首页 > 面试题库 >

相同的Ajax调用了两次。

子车桐
2023-03-14
问题内容

我有使用JQuery..I米一个问题$.ajax()在我的代码(Function 1)发送字段名和序列号,其通过获取其数据的ctrller
$_POST['name']$_POST['sequenceno']并且与序列表中没有given..And生成预览显示面板更新字段名与插入的字段..现在,我再次尝试更改字段名称。tat是现在,当我单击生成的显示面板字段时,相应的设置将打开,我将尝试立即更改字段名称(Function 2)

两者Function1Function2都相同..在Function1我发送的是字段名和序列号

在功能2中,我要发送相同的字段名和(但其他值)序列号。

但是在Function1中(sequenceno是计数器值),而在Function2中(sequenceno是单击的div id(显示面板))

我如何才能对两个都使用相同的功能。或者我是否需要使用单独的功能。

即使我尝试使用2个具有不同网址的单独功能,但未正确更新

我的代码是

    //This is what i insert the field initially

              $(".TextFieldSettings #fieldTitle").change(function (){
             fieldname=$(".TextFieldSettings #fieldTitle").val();
    $.ajax({
           type: "POST",
           url: "./server",
        data: "name="+fieldname+"&sequenceno="+counter,

                success: function(msg){
                      }//success
           });//ajax

     });//change

//After inserting to get the updated values in JSON format

     var htm = $.ajax({
       type: "GET",
          url: "./viewforms",
         async: false
       }).responseText;
        var myObject = eval('(' + htm + ')');


    gettype=myObject.attributes[0]["type"];
   getlabel=myObject.attributes[0]["labels"];

    //showing in my DisplayPanel view

            $("#labelstr"+counter+"").html(getlabel);
     });//change

现在,当我单击DisplayPanel视图时

      $("#displayPanel div").live("click", function(){
                             div_id=$(this).attr("id");

                                var htm = $.ajax({
                                  type: "GET",
                                  url: "./getattributes/"+div_id+"",
                                  async: false
                                 }).responseText;
                                var myObject = eval('(' + htm + ')');


                                gettype=myObject.attributes[0]["type"];
                                getlabel=myObject.attributes[0]["labels"];
                                getsize=myObject.attributes[0]["size"];

    if(gettype=='Text')
     {
    $(".TextFieldSettings").show(function(){
    $(".TextFieldSettings #fieldTitle").val(getlabel);//showing the updated value
                             if(getsize=='100')
                           {
             $("#fieldSize option:contains(Small)").attr("selected",true);
                           }
                             else if(getsize=='200')
                            {
        $("#fieldSize option:contains(Medium)").attr("selected",true);
                         }
              else 
            {
          $("#fieldSize option:contains(Large)").attr("selected",true);
            }
//Again i m changing the fieldname


       $(".TextFieldSettings #fieldTitle").change(function (){
      fieldname=$(".TextFieldSettings #fieldTitle").val();


                                alert(div_id);
                                        $.ajax({
                                           type: "POST",
                                           url: "./editsettings",



                                                                         data: "name="+fieldname+"&sequenceno="+div_id,
                                           success: function(msg){

                                            }//success
                                           });//ajax


});//change in text value later*/



                    });//show
                    }//if type = TEXT

                });//displaypanel Div clicked

但是现在,如果我尝试再次更改字段名,我正在编写另一个POST函数,editsettings但是执行是在内部执行Func1(最初更改)而不是Func2(再次更改字段名)…请任何人找出答案…。注意:
$(".TextFieldSettings #fieldTitle").change()在我的程序内使用了两次。可能是因为这样更新错误


问题答案:

问题似乎是两个事件处理程序都在触发,而您只希望后者触发。

jQuery .change()函数 事件处理程序 添加
到change事件。它不会替代现有的。如果要删除以前的处理程序,则需要类似以下内容的东西:

$(".TextFieldSettings #fieldTitle").unbind('change')

在附加新的处理程序之前。

请注意,我不确定这是否可行(我刚刚从api文档中找到了它),并且现在无法对其进行测试。但是,通常的想法是,如果您希望事件处理程序停止对事件的响应,则必须删除该处理程序。



 类似资料:
  • 在Spring IOC中,bean的两个定义(具有相同的名称和类)是否有效? 我有两个bean定义文件包含在web中。xml。参见下面的示例。 应用Context-beans1.xml applicationContext-beans2。xml 到目前为止,我还没有遇到任何问题。但是,这可能会影响到多线程和集群的现实环境吗? 注意:这两个XMLs都被加载,因为我可以使用在这两个XMLs中定义的其他

  • 问题内容: JSF是否可以进行将同时执行的ajax调用(在开始新的调用之前不等待先前的调用完成)? 问题答案: 不,它们被规范明确地排队,没有任何例外。参见JSF 2规范的 第13.3.2章: 13.3.2 Ajax请求队列 在将所有Ajax请求发送到服务器之前,必须将它们放入客户端请求队列中,以确保按发送顺序处理Ajax请求。在队列中等待时间最长的请求是下一个要发送的请求。发送请求后,Ajax请

  • 我有两个不同的方法,在两个不同的类中。我希望他们都能阅读同一行输入,并检查不同的内容。一个查找“给我冲杯咖啡”之类的说明,另一个查找不同的关键字,如“请”和“谢谢”(这些影响程序对我的反应): 然后我在我的主字符串中调用它们,只是为了测试它们: 我的控制台显示如下: 我知道发生了什么,但我想不出其他办法。我也尝试过使用同一个扫描仪,不同的字符串,但仍然不起作用。我怎样才能使这两种方法都能读取我的第

  • 问题内容: 我有一个ajax电话 现在,这里是10分钟后收到的答复。因此,ajax调用被多次调用。为什么会发生这种情况/我们如何确保ajax调用仅被调用一次? 问题答案: 禁用按钮的另一种方法是使用.one()方法,并在回调后重新绑定事件处理程序:

  • 在我的应用程序中,我将TextWatcher放在EditText上。当我更改EditText的文本时,TextWatcher的事件会被调用两次。 我正在使用模拟器来运行应用程序。

  • 我们有一个cosmos db容器,其中插入了文档(仅附加)。我们看到相同的查询消耗了大量变化的RU,即使匹配文档的数量没有变化。我能够在数据资源管理器中复制。 查询: 分区键路径=/Id 在DataExplorer中连续执行时,我得到以下查询统计信息: 请求费用=4857.38 RUs,索引查找时间=9562.75毫秒,检索到的文档计数=77 请求费用=1900.79 RUs,索引查找时间=466