我在弹出窗口中有一个类似的表单:
<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而且工作正常。
答案 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()"