将值从asp.net复选框或文本框传递到服务器从simplemodal窗口的麻烦

时间:2012-02-16 20:58:23

标签: asp.net simplemodal

大家好,我有一个奇怪的问题。在测试aspx(webform)中,我创建了以下内容。两个复选框和一些jQuery隐藏或显示第二个如果点击主要一个。然后我添加了一个按钮,允许我在页面中呈现每个复选框的值,以确保它们为空。 ASPX

<head runat="server">
    <script type="text/javascript" src="js/jquery-1.7.js"></script>
    <script type="text/javascript">
        $(function () {
            $('#cb2').hide();

            $('#cb1').click(function () {

                if ($('#cb1').is(":checked")) {
                    $('#cb2').show('fast');
                }
                else {
                    $('#cb2').hide();
                    $('#cb2').removeAttr('checked');
                }
            });
    });
</script>

<form id="form1" runat="server">
<asp:ScriptManager ID="scriptManger1" runat="server"></asp:ScriptManager>
<div id="cbHolder">
<asp:CheckBox Text="checkbox 1" ID="cb1" runat="server" />
<asp:CheckBox Text="checkbox 2" ID="cb2" runat="server" />
<asp:Button ID="checkBtn" runat="server" Text="get value" OnClick="checkBtn_Click" />
<br />
<asp:Label ID="lbl_Values" runat="server" />
</div>
</form>

CodeBehind aspx.cs

protected void checkBtn_Click(object sender, EventArgs e)
        {
            lbl_Values.Text = cb1.Checked.ToString() + cb2.Checked.ToString();
        }

一切正常

但是我现在已经将相同的内容添加到我的项目中,而不是它在表单中,内容现在位于SimpleModal窗口中。

ASPX

 <div id="save-modal-content">
                <asp:Label ID="ssHeader" runat="server" Text="<%$ Resources:InformResources, SaveSearch_lbl %>" />
                <br />
                <div class="ssContainer">
                    <div class="ssLabel">
                        <asp:Label Text="<%$ Resources:InformResources, Name_lbl %>" runat="server" /></div>
                    <div>
                        <asp:TextBox CssClass="ssTextBox" ID="txt_ssname" runat="server" /></div>
                </div>
                <br />
                <div class="ssContainer">
                    <div class="ssLabel">
                        <asp:Label Text="<%$ Resources:InformResources, DescFull_lbl %>" runat="server" /></div>
                    <div>
                        <asp:TextBox CssClass="ssTextBox" ID="txt_ssDescription" runat="server" /></div>
                </div>
                <br />
                <div class="ssContainer">
                    <div class="ssLabel">
                        <asp:Label Text="<%$ Resources:InformResources, Query_lbl %>" runat="server" /></div>
                    <div>
                        <asp:TextBox CssClass="ssQueryBox" ID="txt_ssQueryText" runat="server" Rows="6" TextMode="MultiLine" /></div>
                </div>
                <hr class="invisiblehr" />
                <div id="cb1" class="cbHolder">
                    <asp:CheckBox ID="cb_Notifiy" OnCheckedChanged="cb_click" runat="server" Text="I wish to receive notificaions on this search" />
                </div>
                <br />
                <div id="cb2" class="cbHolder">
                    <asp:CheckBox ID="cb_Email" runat="server" Text="I wish to receive notifications via email" />
                </div>
                <hr class="invisiblehr" />
                <div class="saveButtonContainer">
                    <asp:LinkButton ID="ssSaveButton" CssClass="advButtons" Text="Save" OnClick="ssSaveButton_Click"
                        runat="server" />
                    <a href="#" id="ssCancelButton" class="advButtons">Cancel</a>
                </div>
            </div>

js file

$(function () {

        $('#cb_Notifiy').click(function () {

            if ($('#cb_Notifiy').is(":checked")) {
                $('#cb2').show('fast');
            }
            else {
                $('#cb2').hide();
                $('#cb_Email').removeAttr('checked');
            }
        });

背后的代码

public void ssSaveButton_Click(object sender, EventArgs e)
        {

           txt_ssname.Text = cb_Notifiy.Checked.ToString() + cb_Email.Checked.ToString();
           string foo = txt_ssname.Text.ToString();
        }

调用简单模态窗口的代码

// SimpleModal保存对话框 $(function(){     $('#btnSave')。点击(功能(e){

    var searchtrm = $('#tbsearchterm').val();
    if (searchtrm == "Enter Search Term" || $.trim(searchtrm) === "") {

        $('#alert-modal-content').modal({ overlayClose: false, close: false, containerId: 'alert-container' });
        $('<b>Whoops!</b><br/><br/><span>Before you can save your search you need to enter a search term or query.</span>').appendTo('#alertTerm');

    }
    else {
        $('#txt_ssQueryText').val(searchtrm);
        $('#save-modal-content').modal({ overlayClose: false, close: false, containerId: 'saveSearch-container' });
    }
});

});

除了一些标签,更改代码是相对相同的。但是,在项目中,只要单击“保存”按钮,就会调用该方法,但所有值(复选框,文本框)都为空。

任何人都可以帮我弄清楚它为什么在一个项目中工作而不是另一个项目。

提前致谢

1 个答案:

答案 0 :(得分:0)

发现了我的问题here from a previous SO post

的答案

简而言之,开箱即用的简单模式会将内容附加到文档正文中。这是在表单标记之外,这就是无法找到元素的原因。 Simple modal提供了一个属性调用appendTo,对于asp.net使用appendTo:'form'。添加此标记将允许对后面的代码进行属性和调用。

由于