jQuery:如何将变量分配回文档中的隐藏元素?

时间:2011-04-11 15:30:21

标签: jquery html hidden-field

如何将变量(已点击的按钮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>

3 个答案:

答案 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处理程序使用它来查找和更新表按钮的文本。

希望它有所帮助。