我有一个textBox,我想在text_changed事件上创建一个确认消息,并在ok上执行不同的代码,并在text_changed事件下的代码中取消
<asp:TextBox ID="TextBox1" runat="server" ontextchanged="TextBox1_TextChanged"></asp:TextBox>
答案 0 :(得分:0)
window.confirm返回一个布尔值,在你的按钮中你可以添加onclick="trigger_confirmation"
var trigger_confirmation = function(){
if(window.confirm("Are you sure blah blah blah?")){
// user confirmed
} else {
// user declined
}
}
答案 1 :(得分:0)
要实现您的功能,您必须执行以下操作
使文本框的AutoPostBack =“True”。
添加一个隐藏的文件并添加java脚本,如下面的代码示例在aspx页面中。
注意: java脚本块必须在隐藏字段和文本框控件之后出现。
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True"
ontextchanged="TextBox1_TextChanged" ></asp:TextBox>
<script type="text/javascript">
var textChange = document.getElementById('<%= TextBox1.ClientID %>').getAttribute("onchange");
document.getElementById('<%= TextBox1.ClientID %>').setAttribute("onchange", "JustConfirm();");
function JustConfirm() {
var IsConfirm = confirm('Confirm event?');
var hdnctrl = document.getElementById('<%= HiddenField1.ClientID %>');
hdnctrl.value = IsConfirm ? 'yes' : 'no';
eval(textChange);
}
</script>
现在在服务器端将代码检查如下
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
if (HiddenField1.Value == "yes")
{
// Any c# code for confirmation
}
else
{
// Any c# code for not confirmation
}
}
答案 2 :(得分:0)
在TextBox1_TextChanged
块中尝试此代码:
ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script>if(window.confirm('Press ok to continue?')){// on ok clicked }</script>");