Javascript “提交”按钮在弹出窗口中不起作用
我在弹出窗口中有一个类似这样的表单:Javascript “提交”按钮在弹出窗口中不起作用,javascript,c#,html,webforms,Javascript,C#,Html,Webforms,我在弹出窗口中有一个类似这样的表单: <div id="dialog" title="Rezerwacja"> <asp:TextBox ID="imieTextBox" runat="server" placeholder="Imię"></asp:TextBox> <asp:TextBox ID="
<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>
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();
}
因此,我必须隐藏代码:
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();
}
还有一个问题,提交按钮“rezerwujButton”不起作用。它看起来像一个不可攀爬的或类似的东西。。。我在点击它,什么也没做。。。不刷新页面或任何东西。。。
当我打算在没有弹出窗口的情况下使用该表单时,它会工作,但在弹出窗口中不会。
我试图设置usesubmitbehavior=“false”,但当我这样做时,按钮工作了,发送了一些东西,但每个字段都是空白的。。。我的意思是当我试图得到这样的东西:imitextbox.Text它将是空白的。。。总是。。。
有什么想法吗
@编辑
我不知道我做错了什么?
表单中的字段始终为空
任何人都可以告诉我如何使用正确的回发?因为我必须做些错事
我添加了button UseSubmitBehavior=“fase”,在函数PageLoad中,我得到了如下内容:
<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>
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();
}
例如,imitextbox.Text始终为空。。。我不知道为什么
编辑
我做完了。我改变了获取模态窗口的方式。我使用了一个弹出窗口,它不会将modal div移动到任何地方,并且可以正常工作。您可以尝试将您的
rezerwujButton\u单击
方法放入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>
函数rezerwuj_()已单击{
RezerwujCall(函数(响应){if(响应==“ok”){}},函数(响应){console.log(“failed”);});
}
这需要将OnClick=“rezerwujButton\u Click”
更改为OnClientClick=“rezerwuj\u clicked()”
这种“无事发生”行为的原因是jqueryui对话框小部件将DOM元素移动到主体,该元素被转换为对话框(在您的例子中是-$(“\35; dialog”)
)。在此之后,“提交”按钮不再位于表单
标记内,单击它不会导致任何提交
如果整个表单
位于对话框内容内,则仍将有效:
<div id="dialog" title="Rezerwacja">
<form ...>
...
<asp:Button ID="rezerwujButton" runat="server" Text="Zarezerwuj" OnClick="rezerwujButton_Click" />
</form>
</div>
...
它不应该是Click=“rezerwujButton\u Click”
而不是OnClick=“rezerwujButton\u Click”
?什么?你是什么意思?OnClick=“rezerwujButton\u Click”是正确的,但我还有一个问题。。。我无法在div对话框中添加表单,因为在site.master中我已经获得表单。。。。我不能添加更多的标记形式…@ArekWiśniewski-然后您需要首先处理javascript中的按钮单击,并使用适当的参数调用\uuuuu doPostBack
,这将导致服务器端按钮认为它已被单击。您能解释一下如何实现\uu doPostBack吗?它是如何工作的?@ArekWiśniewski function_uudopostback是由ASP.NET写入您的页面的-嗯。。。我如何使用它?