我正在尝试以编程方式打开jQuery对话框。我可以打开对话框,但我无法将帖子数据发送到对话框。
这是代码。
HTML:
<div data-role="page" id="rename-dialog">
<?php
$current_group = $_POST['gr_name'];
$current_code = $_POST['gr_code'];
$current_id = $_POST['in_id'];
?>
<div data-role="header" data-theme="d" class="ui-header ui-bar-d" role="banner">
<a href="#main-page" class="ui-btn-left ui-btn ui-shadow ui-btn-corner-all ui-btn-icon-notext ui-btn-up-d" data-icon="delete" data-iconpos="notext" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-theme="d" title="Close" ktbt_p_pass="1">
<span class="ui-btn-inner">
<span class="ui-icon ui-icon-delete ui-icon-shadow"> </span>
</span>
</a>
<h1 class="ui-title" role="heading" aria-level="1">Rename <?php echo $current_group; ?></h1>
</div>
<div data-role='content'>
<form id='rename-group-form' action='' method='post'>
New name for <?php echo $current_group; ?>: <input type='text' name='new-group-name'><br>
<input id='rename-submit' type='submit' data-theme='b' value='Rename'></input>
</form>
</div>
</div>
JAVASCRIPT:
var g_code = parseInt($(this).attr("id"));
var i_id = parseInt($(this).attr("value"));
var g_name = $(this).attr("text");
$.mobile.changePage( "#rename-dialog", {transition: 'slideDown', role: 'dialog'}, {
type: "post",
data: {gr_code: 'test', in_id: 'test', gr_name: 'test'}
});
基本上这会打开对话框,但是我收到错误,索引g_code,in_in和gr_name未定义。
我做错了什么?
答案 0 :(得分:0)
假设所有相关代码都显示在您的问题中......
由于您拥有的代码可以获取任何块之外的g_code,i_id和g_name的值,因此未定义$(this)。例如,在这种情况下:
$("#item").click(function() {
var item_id = $(this).attr("id");
});
$(this)将引用ID为“item”的DOM元素,因为选择器是“#item”。
如果您提问的代码不在选择器块内,可能需要将其移动到一个,或者您需要将“this”替换为实际选择器以获取DOM元素想。
如果这些答案都不适用,请发布更多代码,以便更好地了解正在发生的事情。