提交按钮在弹出窗口

时间:2017-01-10 15:35:15

标签: javascript c# html webforms

我在弹出窗口中有一个类似的表单:

<div id="dialog" title="Rezerwacja">

        <asp:TextBox ID="imieTextBox" runat="server" placeholder="Imię"></asp:TextBox>
        <asp:TextBox ID="nazwiskoTextBox" runat="server" placeholder="Nazwisko"></asp:TextBox>
        <asp:TextBox ID="emailTextBox" runat="server" TextMode="Email" placeholder="Email"></asp:TextBox>
        <asp:TextBox ID="telefonKomorkowyTextBox" runat="server" TextMode="Phone" placeholder="Telefon kom."></asp:TextBox>
        <div id="plansza"></div>
        <asp:Button ID="rezerwujButton" runat="server" Text="Zarezerwuj" OnClick="rezerwujButton_Click" />


   </div> 

和JavaScript:

$(document).ready( function() {
  $( "#dialog" ).dialog({
      autoOpen: false,
      show: {
          effect: "puff",
          duration: 1000
      },
      hide: {
          effect: "explode",
          duration: 1000
      }
  });

  $( ".opener" ).on( "click", function() {
      $( "#dialog" ).dialog( "open" );
  });
});

所以我必须支持代码:

protected void rezerwujButton_Click(object sender, EventArgs e)
    {
        rezerwacje nowaRezerwacja = new rezerwacje();

        nowaRezerwacja.imie_klienta = imieTextBox.Text;
        nowaRezerwacja.nazwisko_klienta = nazwiskoTextBox.Text;
        nowaRezerwacja.email_klienta = emailTextBox.Text;
        nowaRezerwacja.nrtel_klienta = telefonKomorkowyTextBox.Text;

        bazaDC.rezerwacjes.InsertOnSubmit(nowaRezerwacja);
        bazaDC.SubmitChanges();
    }

还有问题,提交按钮&#34; rezerwujButton&#34;不起作用。它看起来像一个无法点击或类似的东西......我点击它并没有做任何事......不刷新页面或任何东西...... 当我打算在没有弹出窗口的情况下使用该表单时,它可以工作但不在弹出窗口内。 我试图设置usesubmitbehavior =&#34; false&#34;但当我这样做时,按钮工作,发送一些东西,但每个字段都是空白的...我的意思是当我试图得到这样的东西:imieTextBox.Text它将是空白的...总是...... 有任何想法吗?

@edit

我不知道我做错了什么? 表格中的字段始终为空白......

任何人都可以告诉我如何使用正确的__PostBack?因为我必须做错事......

我添加了按钮UseSubmitBehavior =&#34; fase&#34;在函数PageLoad中我得到了类似的东西:

   if (Page.IsPostBack)
        {

                rezerwacje nowaRezerwacja = new rezerwacje();

                nowaRezerwacja.imie_klienta = imieTextBox.Text;
                nowaRezerwacja.nazwisko_klienta = nazwiskoTextBox.Text;
                nowaRezerwacja.email_klienta = emailTextBox.Text;
                nowaRezerwacja.nrtel_klienta = telefonKomorkowyTextBox.Text;

                bazaDC.rezerwacjes.InsertOnSubmit(nowaRezerwacja);
                bazaDC.SubmitChanges();

        }

例如imieTextBox.Text总是空白的...我不知道为什么......?

修改

我完成了。我改变了获得模态窗口的方式。我使用了弹出窗口,它不会在任何地方移动模态div而且工作正常。

2 个答案:

答案 0 :(得分:1)

“没有发生”行为的原因是jQuery-UI对话框小部件移动了DOM元素,该元素被转换为对话框(在您的情况下为$("#dialog")),转移到{{1} }。在此之后,提交按钮不再位于body标记内,单击它不会导致任何提交。

如果整个form在对话框内容中,它仍然有用:

form

答案 1 :(得分:0)

您可以尝试将rezerwujButton_Click方法放入PageMethods

[ScriptMethod, WebMethod]
public string RezerwujCall() {
    // logic here
    return "ok";
}

然后在你的js:

<script type="text/javascript">
      function rezerwuj_clicked() {
          PageMethods.RezerwujCall(function (response) { if(response == "ok"){} }, function(response){ console.log("failed"); });
      }
</script>

这需要将OnClick="rezerwujButton_Click"更改为OnClientClick="rezerwuj_clicked()"