0

我的场景是这样的。用户单击按钮,将出现一个带有复选框列表的模式对话框。当用户进行选择并在客户端单击事件中单击“确定”时,我想使用用户选择的值列表设置一个隐藏字段。用户继续表单的其余部分并单击另一个按钮以提交整个表单。从后面的代码(按钮单击事件)中,我需要访问填充到隐藏字段中以保存到数据库的值列表。

客户端点击事件代码

 function onOk() {
        var selectedItems = [];
        $("[id*=CategoryCheckboxList] input:checked").each(function () {
            selectedItems.push(this.value);
        });
        //stuff the values in the hidden field for later postback
        $("#hiddenCategoryHash").value = selectedItems; //appears to work, no errors
        $("#debugcat").text(selectedItems); //stuff into a div for testing (works)
        $("#dbg").text = selectedItems;   //attempted to stuff in Textbox. FAIL
        }

应该注意的是,我也尝试过使用 html 输入控件并使用 request.form 以这种方式检索值,但也不起作用。我在这里有正确的方法吗?我应该以不同的方式解决这个问题吗?

这是标记

 <asp:HiddenField ID="hiddenCategoryHash" runat="server" EnableViewState="true"   />
<asp:TextBox ID="dbg" runat="server"></asp:TextBox>
<input type="hidden" name="conf4" value="test" />

最后是后面的代码

xfer.IsActive = True
    xfer.IsDiscontinued = False
    Dim hiddenval = Request.Form("hiddenCategoryHash")
    Dim test = hiddenCategoryHash.Value
    Dim debugdiv = Request.Form("debugcat")
    xfer.CategoryIDhash = hiddenval
    dc.Transfers.InsertOnSubmit(xfer)
    dc.SubmitChanges()

感谢您的所有建议。事实证明,我必须在我的 jquery 选择器中获取隐藏控件的完整 clientID,如下所示:$("#<%= hiddenCategoryHash.ClientID %>").val(selectedItems);。

4

2 回答 2

0

要设置文本字段的值,请使用.val()

$("#dbg").val(selectedItems.join(','));

隐藏字段也一样

$("#hiddenCategoryHash").val(selectedItems.join(','))
于 2013-06-12T05:17:36.683 回答
0

尝试这个

function onOk() 
      {
            selectedItems = [];
            $("input[id*=CategoryCheckboxList]:checked").each(function(){
               selectedItems.push($(this).val())
            });
            $("#hiddenCategoryHash").val(selectedItems);
            $("#debugcat").text(selectedItems);
            $("#dbg").val(selectedItems);
     }

如果你想加入可以使用 selectedItems.join(',') 的值

于 2013-06-12T06:14:14.140 回答