0

我正在尝试设置一个对话框,我希望将按下的按钮的名称转移到对话框中,但我不知道该怎么做。

到目前为止,我有:

$(document).ready(function(){
$("#x").live('click', function(){
 var name = $(this).attr('name');  //want to pass this to the next jquery
 $('#dialog_box').dialog("open");
});
var input = $("#input");    
$("#dialog_box").dialog({
    autoOpen: false,
    resizable: false,
    height:180,
    width: 350,
    modal: true,
    buttons: {
        "Update": function(){
            alert(name);
        }
    }
  });
});

另外,一旦转移以更新对话框的标题(下面的标记),我将如何使用该变量?

<div id="dialog_box" title="name variable here">
 <form id="dialog_form" name="dialog_form">
  <fieldset>
   <input type="text" name="input" id="input"/>
  </fieldset>
 </form>                
</div>

任何帮助表示赞赏:)

4

2 回答 2

3

请使用合适的名称更改文本框 ID。

试试这样。

var titleValue=$("#input").val();
$( "#dialog_box" ).dialog({ title: titleValue });

或者您可以像这样覆盖默认值

$("#dialog_box").dialog("option", "title", $('#titleText').val());

按钮单击处理程序。

 $('#btnOpendialog').on('click', function (e) {
     e.preventDefault();
     $("#dialog_box").dialog('open');
     $("#dialog_box").dialog("option", "title", $('#titleText').val()); // to change the dialog title. 

 })

工作演示

于 2013-03-14T12:47:33.287 回答
1

首先.live()不推荐使用,我建议使用.on()和尝试.data()方法

$(document).on('click', '#x', function(){
    $('#dialog_box').data('name', $(this).attr('name'));  //passed to dialog
    $('#dialog_box').dialog("open");
});

在对话框中调用

  $("#dialog_box").dialog({
      autoOpen: false,
      resizable: false,
      height:180,
      width: 350,
      title: $(this).data('name'), //will set dialog title 
      modal: true,
      buttons: {
        "Update": function(){
            alert($(this).data('name')); //should return input value
        }
    }
  });
});
于 2013-03-14T12:59:41.370 回答