如何在按钮单击时调用jquery对话框而不是在document.ready上调用

时间:2011-04-17 13:05:13

标签: jquery dialog jquery-ui-dialog

我对jquery一无所知,我刚刚下载了jqueryUIdialog的所有文件。

我正在尝试使用它一整天。

我有一个表单,用户可以捕获一些内容,也可以单击打开另一个表单的按钮。

我想在对话框中打开第二个表单,当提交表单时,返回第一个表单并继续捕获其他详细信息。

问题是我试图使用:document.getElementById传输在第一个表单上捕获的数据,但是由于在document.ready上调用了对话框函数,所以没有任何内容,当时还没有捕获任何内容

有没有办法将页面加载到按钮上的对话框或链接点击而不是在document.ready上?

这是我的javascript代码:

$(document).ready(function() {
    var $dialog = $('<div></div>')
    var day = document.getElementById('day').value;

    var qry = '?day=' + day;

    .load('orderSandwich.php'+qry)
            .dialog({
                autoOpen: false,
                title: 'Sandwitch Order',
                width: 700
            });

   $('#sandwich').click(function() {
       var day = document.getElementById('day').value;
       $dialog.dialog('open');
       // prevent the default action, e.g., following a link
       return false;
   });
});

日期值为空,因为用户没有机会在文档触发之前放置任何内容。

第一个表单代码:

<input type="text" name="day" id="day" />
<button id="sandwich">Sandwich</button>

希望你能理解我的问题。

谢谢,

希格

1 个答案:

答案 0 :(得分:1)

您的代码存在一些问题。您应该按照一些jquery教程来熟悉自己。

<强>第一

var day = document.getElementById('day').value;

此行应位于点击处理程序中。你可以从这里删除它。此外,您只需使用

var day $('#day').val();//jquery way of doing it

,然后

.load('orderSandwich.php'+qry)

您实际上没有将此附加到DOM元素。查看用法的API:http://api.jquery.com/load

var $dialog = $('<div></div>')

我还没有尝试过,但我很确定你必须先将它附加到一个DOM元素才能使用DIV(JS人员,如果我错了,请纠正我)。你实际上只是在内存中创建一个DIV元素。它没有附加到DOM树。

另外,您可能希望在某些事件处理程序中移动.load。因为我怀疑你想在DOM准备好的时候调用PHP页面。