gpt4 book ai didi

asp 中的 JavaScript :Wizard

转载 作者:行者123 更新时间:2023-11-28 10:02:11 26 4
gpt4 key购买 nike

我有一个向导控件,用户可以一步输入他的姓名、电子邮件地址、电话号码等。

当用户按向导的“下一步”按钮时,我将检查数据库以查看是否存在具有指定电话号码的现有帐户。

如果是这种情况,系统应该询问用户是否会将新信息绑定(bind)到该号码,或者是否输入新的电话号码。

如果他说他将绑定(bind)信息,则信息将被绑定(bind)并且向导将继续执行步骤 2,如果他将输入新的电话号码,则向导将停留在步骤 1。

代码看起来像这样:

protected void Wizard1_NextButtonClick(object sender, WizardNavigationEventArgs e)
{
if (Wizard1.ActiveStepIndex == 0)
{
Page.Validate();
if (Page.IsValid)
{
if (!Mobile_ValidateForExistingUsers(((TextBox)WizardStep1.ContentTemplateContainer.FindControl("txtPhone")).Text))
{
//JavaScript popup or something, which prompts the user?
}
}
}
}

验证器在哪里:

protected bool Mobile_ValidateForExistingUsers(string usrPhone)
{
bool IsValid = false;

using (SqlConnection conn = new SqlConnection(connString))
using (SqlCommand cmd = new SqlCommand("spCheckMobile", conn))
{
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Mobile", usrPhone));

cmd.Connection.Open();

object result = cmd.ExecuteScalar();

if (result == null)
{
IsValid = true;
}
}
return IsValid;
}

如何询问用户这个问题,然后继续或让他在向导中输入一些新信息?

最佳答案

我认为处理这个问题最有效的方法是制作 Mobile_ValidateForExistingUsers(phoneNumber)函数用于 AJAX 调用的 WebMethod。编写 AJAX 代码后,将 AJAX 调用附加到 <asp:CustomValidator>其客户端验证功能,如果返回 false,请跟进您的 window.alert('use new number') .

或者,您可以通过服务器端代码使用 <asp:CustomValidator> 来处理大部分问题。 ,尽管如果您在服务器端处理验证,则无需设置客户端验证函数。只需设置 CustomValidator1.IsValid属性到结果Mobile_ValidateForExistingUsers(phoneNumber)函数,然后调用 Page.Validate()查看该页面是否仍然有效。如果没有,请标记 runat="server"隐藏输入并让一些客户端代码提示用户 window.onload如果他们想使用新号码,请将其存储在第二个隐藏字段中。示例如下:

protected void Wizard1_NextButtonClick(object sender, WizardNavigationEventArgs e)
{
if (Wizard1.ActiveStepIndex == 0)
{
Page.Validate();
if (Page.IsValid)
{
if (HiddenField2.Value == '') //Client-side Flag not set
{
if (!Mobile_ValidateForExistingUsers(((TextBox)WizardStep1.ContentTemplateContainer.FindControl("txtPhone")).Text))
{
CustomValidator1.IsValid = false; // Invalidate the page so the Next Step fails.
HiddenField1.Value = false; // Page will get re-rendered to client to fix errors and stay on the same step.
}
}
else
{
if (HiddenField2.Value == 'true')
{
// Use new binding logic.
}
else
{
//User does not want to use new number, so logic to handle goes here.
}
}

}
}
}

然后在客户端标记中的某个位置:

/*
* Crude example
*/
<script type="text/javascript">
window.onload = function () {
'use strict';
var hf1 = document.getElementById('<%=HiddenField1.ClientID %>');
var hf2 = document.getElementById('<%=HiddenField2.ClientID %>');
var myForm = document.getElementById('<%=Form1.ClientID %>');
if (hf1.value === 'false') { // or if (hf1.value) if you just want the truthiness of the value's existence (depending on how you flag stuff)
hf2.value = window.confirm('Wanna use this number?').toString().toLowerCase();
}
myForm.submit();
}
</script>

希望这有帮助,

皮特

关于asp 中的 JavaScript :Wizard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8988341/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com