如何将变量(已点击的按钮ID)分配给jQuery Diaglog,然后返回文档中的隐藏元素(myhiddenid)供以后使用?
<table border="0" class="time_data">
<td><button type="button" id='001' class="del-fruit" > Apple </td>
<td><button type="button" id='002' class="del-fruit" > Banana </td>
<td><button type="button" id='003' class="del-fruit" > Cantalope </td>
</table>
<div id='myhiddenid' style="display:none;"></div>
<script type="text/javascript">
$("#dialog-form").dialog({
autoOpen: false,
height: 150,
width: 350,
modal: true,
resizable: false,
buttons: {
'Yes': function() {
var bValid = true;
allFields.removeClass('ui-state-error');
bValid = bValid
if (bValid) {
//the assining of myhiddenid should be here!!
//and should contain the ID of the button that i clicked.
$(this).dialog('close');
}
},
No: function() {
$(this).dialog('close');
}
},
close: function() {
allFields.val('').removeClass('ui-state-error');
}
});
$('.del-fruit')
.button()
.click(function() {
$('#dialog-form')
.dialog( "option", "title", this.id )
.dialog('open');
});
</script>
答案 0 :(得分:5)
您可以使用隐藏字段并分配值:而不是div,例如
HTML
<input type="hidden" id="hdnId" />
的jQuery
$("#hdnId").val(id);
答案 1 :(得分:1)
同意第一个答案,但如果你想使用隐藏的div:
组:
$("div#myhiddenid").html("whateverId");
得到:
var foo = $("div#myhiddenid").html();
答案 2 :(得分:0)
另一种方法是使用jQuery .data()函数来存储针对元素的信息,例如针对#dialog-form本身,并使用它来表示从对话框返回的信息。如果您发现自己需要返回的不仅仅是一个简单的ID,这将非常方便,因为您可以直接存储对象,而不必从隐藏字段来回串行化信息。
以下是基于HTML的示例:http://jsbin.com/omexi5
当文档加载时,表中的每个按钮都会被分配一个单击处理程序,该处理程序首先在对话框的.data()中记录它的ID,然后打开对话框。对话框的'open'事件处理程序使用.data()中的ID在对话框中设置消息,然后Yes处理程序使用它来查找和更新表按钮的文本。
希望它有所帮助。