我的页面中有一个按钮,如果条件匹配,其click事件将执行某些代码,否则它会要求确认是否继续。我有一个javascript函数进行确认,如下所示。
<script type="text/javascript">
function getConfirmation(){
var retVal = confirm("Do you want to continue ?");
if( retVal == true ){
return true;
}
else{
return false;
}
}
</script>
<asp:Button runat="server" ID="lnkBtn" onClick="lnkBtn_Click" onClientClick="getConfirmation()"></button>
背后的代码如下所示:
void lnkBtn_Click(Object sender, EventArgs e)
{
if (txtMyText.Text!="")
{
///need confirmation here whether to continue.
}
else
{
//continue with normal code.
}
}
现在的问题是,即使不满足条件,单击按钮时也会触发confirm()。我希望confirm()仅在满足条件时触发。请帮我这样做。
在期待中感谢你。
我尝试了两种解决方案,但似乎我在某处犯了一个错误。我附上下面的完整代码。请您帮助我找出我错在哪里以及如何解决它。
<script type="text/javascript">
function Confirm() {
var confirm_value = document.createElement("INPUT");
confirm_value.type = "hidden";
confirm_value.name = "confirm_value";
if (confirm("This will completely delete the project. Are you sure?")) {
confirm_value.value = "Yes";
}
else {
confirm_value.value = "No";
}
document.forms[0].appendChild(confirm_value);
}
</script>
<asp:Button runat="server" ID="lnkBtn" onClick="lnkBtn_Click" onClientClick="getConfirmation()"></button>
代码背后:
protected void ibExport_Click(object sender, ImageClickEventArgs e)
{
string str=gdView.HeaderRow.Cells[8].Text;
System.Web.UI.WebControls.TextBox txtID = (System.Web.UI.WebControls.TextBox)gdView.Rows[0].Cells[8].FindControl(str);
if (txtID.Text != "")
{
string confirmValue = Request.Form["confirm_value"];
if (confirmValue == "Yes")
{
MyAlert("Yes clicked");
}
else
{
MyAlert("No clicked");
}
}
else
{
MyAlert("No Text found.");
}
}
使用txtID.Text!=“”单击ibExport时,不会显示确认对话框。而是直接弹出“No clicked”警告。
答案 0 :(得分:1)
非常接近,在内联点击处理程序中使用return
语句。
onClientClick="return getConfirmation()"
而不是
onClientClick="getConfirmation()"
此外,if
功能中的getConfirmation
阻止是多余的
function getConfirmation() {
return confirm("Do you want to continue ?");
}
答案 1 :(得分:-1)
删除您的Javascript。而是在Backend中使用此功能进行按钮点击事件。
void lnkBtn_Click(Object sender, EventArgs e)
{
if (txtMyText.Text!="")
{
Response.Write("<script> function getConfirmation()"
+" { var retVal = confirm('Do you want to continue ?');"
+" if( retVal == true )"
+" { return true; } else{ return false;} }"
+" </script>");
}
else
{
//continue with normal code.
}
}