【问题标题】:assign id to jquery dialog button将 id 分配给 jquery 对话框按钮
【发布时间】:2011-06-23 04:45:17
【问题描述】:

如何为 jquery 对话框按钮分配一个 id。我尝试了以下方法,但它不起作用

buttons: {
Ok: function() {
id="xyz",
...

【问题讨论】:

    标签: jquery button dialog


    【解决方案1】:

    以下(似乎未记录)适用于我的 jQuery 1.8.9:

    $("#dlg").dialog({
      buttons :  { 
         "MyButton" : {
             text: "My Button",
             id: "my-button-id",
             click: function(){
                 alert("here");
             }   
          } 
       }
    });
    

    可以通过 $("#my-button-id") 寻址按钮

    【讨论】:

    • 记录:“数组的每个元素都必须是定义属性、属性和事件处理程序的对象,以在按钮上设置。” ID 是标准属性。
    【解决方案2】:

    来自官方网站的这段代码对我有用:

    $('#dialog').dialog({
        // properties ... 
        buttons: [{
            id:"btn-accept",
            text: "Accept",
            click: function() {
                $(this).dialog("close");
            }
        }, 
        {
            id:"btn-cancel",
            text: "Cancel",
            click: function() {
                $(this).dialog("close");
            }
        }]
    });
    

    【讨论】:

    • 你说的“来自官方网站的代码”是什么意思?对话框按钮的官方文档并没有说id 是一个有效的属性:api.jqueryui.com/dialog/#option-buttons 实际上,它暗示相反的意思是说“如果你需要访问按钮,它可以作为事件对象的目标” .如果id 是一个有效属性,那么显然也可以使用它访问按钮。未记录的“功能”可能会意外删除,例如在这种情况下:bugs.jqueryui.com/ticket/4437 所以这个答案错误地暗示id 得到官方支持。
    • 它没有明确声明支持 ID,但绝对不暗示相反。它说:“数组的每个元素都必须是一个对象,定义了要在按钮上设置的 属性、属性和事件处理程序。” ID 是标准属性。
    【解决方案3】:

    @BerndB:感谢它完美运行,甚至更可扩展。

    $('#loginlink').live('click',function(){
        DC = 'login_box';
        diaOpt = {
            autoOpen : true,
            width : 400,
            title : 'Login',
            buttons: {
                //valiudate login
                'Login' : {
                    text : 'Login Now',
                    id : 'validateForm',
                    click : function(){
                    }   
                }
            }
        }
    
        launchDialog(diaOpt, DC);
    });
    
    $('#validateForm').live('click', function(){
        alert('Hellop');
        $("#loginform").validate();
    });
    

    【讨论】:

      【解决方案4】:

      试试这个。

      buttons: {
          'MyButton': function() {
              //... configure the button's function
          }
      

      还有 id 设置器

      $('button:contains(MyButton)').attr("id","xyz");  
      

      【讨论】:

        【解决方案5】:
        $("#OK",{id:'xyz'});
        

        希望对你有帮助

        【讨论】:

        • 我认为这将是一个谜。请稍微描述一下。
        • 我有这样的,它没有分配 id #OK。上一条:function(){$("#OK",{id:'xyz'});
        猜你喜欢
        • 1970-01-01
        • 2021-04-20
        • 1970-01-01
        • 2014-03-29
        • 2013-08-22
        • 1970-01-01
        • 1970-01-01
        • 2015-10-22
        • 1970-01-01
        相关资源
        最近更新 更多