【发布时间】:2021-10-29 11:43:38
【问题描述】:
我有一个 JavaScript 模式,它在单击按钮时打开,并且有两个文本框和一个按钮。该按钮的任务是将已键入文本框中的数据插入数据库。但是,我不知道为什么,当我单击按钮时,它只是刷新了我的页面并且数据没有插入到数据库中。我还在 try/catch 块中包装了两个警报,因此如果操作成功,则会出现一个,如果不成功,则会出现另一个,但由于某种原因,单击按钮后它们都没有出现(操作不成功后的警报需要弹出向上)。我已经搜索了整个互联网,但我不知道为什么在我的某些情况下我找不到任何东西(大多数解决方案都是针对 PHP 的)。
如何使模态框上的按钮起作用,并从文本框中收集数据并插入到数据库中?
这里是模态的 HTML 代码:
<i class="fas fa-info-circle" id="info"></i>
<div class="popup" id="popup">
<div class="modal-container" id="modal_container">
<div class="popup_left">
<div class="popup-img_container">
<img
src="img/database_system.jpg"
alt="Database System"
class="popup_img"
/>
</div>
</div>
<div class="popup_right">
<div class="right_content">
<h1>Can't reach me online?</h1>
<p>
Please type your e-mail and provide a brief explanation of your
intention/purpose of contacting.
</p>
<form method="post" enctype="multipart/form-data">
<asp:TextBox
ID="email_textbox"
CssClass="popup_form"
placeholder="Please enter your e-mail"
runat="server"
Required="required"
></asp:TextBox>
<asp:RegularExpressionValidator
ID="validator1"
runat="server"
ErrorMessage="Invalid character, your e-mail address must contain @"
ControlToValidate="email_textbox"
ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
></asp:RegularExpressionValidator>
<asp:TextBox
ID="email_message"
CssClass="popup_form"
placeholder="Message"
runat="server"
Required="required"
></asp:TextBox>
<asp:Button
ID="Message_button"
runat="server"
Text="Send"
type="button"
OnClick="Message_button_Click"
/>
</form>
</div>
</div>
<button id="close" type="button">
<div class="popup_close">
<svg>
<use xlink:href="img/sprite.svg#icon-cross"></use>
</svg>
</div>
</button>
</div>
</div>
这是 C# 代码:
SqlConnection con = new SqlConnection(@"Data Source=;Initial Catalog=Contacts;Persist Security Info=True;User ID=;Password=");
protected void Message_button_Click(object sender, EventArgs e)
{
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "INSERT INTO ContactsTable VALUES ('"+email_textbox.Text+"','"+email_message.Text+"')";
cmd.ExecuteNonQuery();
try
{
script += successMessage;
script += "')};";
ClientScript.RegisterStartupScript(this.GetType(), "SuccessMessage", script, true);
}
catch (Exception)
{
script += dbFailMessage;
script += "')};";
ClientScript.RegisterStartupScript(this.GetType(), "dbFailMessage", script, true);
}
email_textbox.Text = "";
email_message.Text = "";
}
这是 JavaScript 代码:
const info = document.getElementById('info');
const popup = document.getElementById('popup');
const close = document.getElementById('close');
info.addEventListener('click', () => {
popup.classList.add('show');
});
close.addEventListener('click', () => {
popup.classList.remove('show');
});
感谢您的帮助。
【问题讨论】:
标签: javascript c# asp.net sql-server