我对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>
希望你能理解我的问题。
谢谢,
希格
答案 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页面。