我的extjs应用程序中有一个组合,我想显示’你是吗?
当然?’如果用户说不,则向用户确认窗口并防止更改.

由于JavaScript的确认框是同步的,因此它可以正常工作.但是使用Ext JS,会显示确认消息,我的其余代码将在用户响应之前执行.这是我的代码:

// JavaScript confirm Box
{
    xtype: 'combo',...
    ...
    ...
    listeners: {
        beforeselect: function(combo,record,index ) {
            if(confirm('Are you sure ?') == false)
            {
                 return false; // prevent combo from changing
            }
            // else continue
        }
    }
}
// Ext JS message Box (to confirm)
{
    xtype: 'combo',index ) {
            Ext.Msg.show({
                title: 'Warning',msg: 'Are You Sure ?',buttons: Ext.Msg.YESNO,fn: function(btn) {
                    if (btn == 'yes') {
                        // continue and set new value on combo
                    }
                    else if (btn == 'no') {
                        // prevent combo from changing
                    }
                }
            });
        }
    }
}

问题是Ext.Msg.show获得了一个回调函数,并没有等待用户回答,我们无法阻止组合框更改.

我该怎么办?

解决方法

为了取消组合框更改,beforeSelect侦听器需要返回false.我的建议是:
beforeselect: function(combo,index ) {
  Ext.Msg.show({
    title: 'Warning',fn: function(btn) {
      if (btn == 'yes') {

        // Here we have to manually set the combo value
        // since the original select event was cancelled
        combo.setValue( /* whatever value was selected */ );
      }

      else if (btn == 'no') {

        // Don't do anything because the select event was already cancelled
      }
    }
  });

  // Cancel the default action
  return false;
}

ExtJS Modal不像本机对话框那样暂停脚本的执行,这意味着beforeSelect侦听器在用户操作之前返回.此代码的工作方式是立即停止select事件,并显示对话框.当用户选择“是”时,则在回调函数中以编程方式设置组合上的值.

javascript – 如何让用户确认ExtJs中的组合框更改事件?的更多相关文章

  1. ios – OpenCV构建问题,找不到ext/atomicity.h

    我得到编译器错误抱怨在构建包含OpenCV的项目时.环境是针对iOS的Xcode4.5.它为模拟器编译良好,但在为设备构建时失败.这是错误文本:我正在使用opencv2.framework,使用指令here构建cmake.解决方法默认情况下,XCode4.5使用libc(支持C11的LLVMC标准库)生成要构建的新项目.但OpenCV期望针对GNUlibstd

  2. macOS 控件教程(1)

    本教程介绍最常见的macOSUI控件——大部分Macapp都是由它们构成的。而要在所有控件上添加自动布局将严重分散你的注意力,因此本教程我们将主要精力集中在macOS控件的使用上。在本教程中,你需要在这个视图上添加几个macOS控件,视图的默认高度可能不足以放下它们。NSControl——MacOS控件的基石NSControl是其它macOS控件的基础。在macOS这个控件就是NSTextField。在macOS中,这两者被合二为一了,它会根据isEditable属性值的不同而改变不同的行为。

  3. Android Studio 2.3更新:警告:使用不兼容的插件进行注释处理:android-apt.这可能会导致意外行为

    所以,我已经阅读了本网站上有关此问题的所有问题.我还与其中一位有类似问题的开发人员聊天,他能够解决这个问题.我没有在我的gradle脚本中编写apt或annotationProcessor.我的代码中没有任何地方写过android-apt这个词.我甚至继续检查了所有的库.这包含在我的项目中.这是一个非常大的问题,需要解决.我在下面附加修改后的build.gradle,请建议:解决方法较旧版本的Re

  4. 如何在Picasso库中实现Pinch Zoom?

    我在我目前的项目http://square.github.io/picasso/中使用Picasso库.一切都运行正常,但我无法弄清楚如何为从URL加载的所有图像实现PinchZoom.说实话,我甚至不知道在哪里放置onClickListener.我的应用程序有几个片段,每个片段都有2个选项卡,第一个选项卡有一个ListView,第二个选项卡有一些显示在GridView中的图片:Bmw.javaS

  5. Easyui的组合框的取值与赋值

    最近开发了一个项目,其中有功能要用户点击下拉框可以实现多选的效果,下文给大家分享实现核心代码和combobox的取值与赋值的代码,对easyui组合框相关知识感兴趣的朋友一起看看吧

  6. Ajax实现动态加载组合框的实例代码

    本文通过实例代码给大家介绍了Ajax实现动态加载组合框功能,感兴趣的朋友一起看看吧

  7. select组合框option的捕捉实例代码

    这是一份报名表单,要求用户在选中“专业人士访问员”和“定性访问员”后,分别显示“可提供被访者类型”和“容易接触到的行业”的对应表单。当呈未选中状态时,这2个框也对应的隐藏起来。

  8. 使Ext的Template可以解析二层的json数据的方法

    使Ext的Template可以解析二层的json数据的方法

  9. 用jQuery实现可输入多选下拉组合框实例代码

    这篇文章主要介绍了用jquery实现可输入多选下拉组合框的实例代码,非常不错,具有参考借鉴价值,需要的朋友参考下

  10. php – symfony2 – 如何在每个页面中全局检索数据库中的数据

    我想从数据库中的表中检索Cities名称,并将它们作为选项放在“layout.html.twig”中定义的选择输入(组合框)中.我的所有观点都扩展了’layout.html.twig’,那么如何在每个页面中访问城市名称?

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部