0

我正在开发一个网页,该网页在单击按钮时保存用户信息,然后重定向页面。

但是,如果他/她忘记在其中一个控件中填写值,我想提醒用户。并要求更正错误并再次单击保存按钮..

我用确认框实现了一个类似的功能,但由于警报框没有返回值,我想知道这样的实现是否可行?

4

5 回答 5

1

服务器端

<asp:Button ID="MyButton" runat="server" OnClientClick="return myFunction();" OnClick="MyButton_Click" Text="Save" />

客户端

function myFunction() {
     if (document.getElementById("<%=this.MyFieldName.ClientID%>").value.length == 0) {
         alert('Please fill in the field.');
         return false;
     }

    return true;
}
于 2009-09-03T18:09:00.640 回答
1

您还可以使用 asp:RequiredFieldValidator 标记,让 ASP.Net 验证逻辑为您完成所有检查和用户提示。

于 2009-09-03T18:21:16.603 回答
1

尝试重用标准 ASP.net 验证控件,而不是使用自定义 JavaScript 和警报框进行验证。其中有很多可用于必填字段、比较验证器、自定义验证器等。优点是您使用标准机制,并且可以访问它们以进行服务器端和客户端验证。如果您的用户在他的浏览器中禁用了 JavaScript,那么服务器端验证很重要,这似乎仍然会发生。

此外,我实际上更喜欢事情直接发生在页面上,而不是使用警报框(这在某种程度上是旧的做事方式)。警告框降低了用户体验,因为他必须不断地点击它,而且他必须阅读发生了什么,而如果错误直接显示在其源下方,则更容易看到(仅从可用性的角度来看)。

您也可以查看 jQuery 验证机制。据我所知,存在一个。

于 2009-09-03T19:53:11.123 回答
0

我认为您不需要返回值。您的函数可以通过返回 false 来取消按钮提交。

function myBtnClick()
{
   if (document.getElementById("myTextBox").value == "")
   {   
      alert("You forgot to fill it in!");
      return false;
   }

   return true;
}
于 2009-09-03T18:10:44.880 回答
0

或者,您可以将警报框中的文本更改为问题并使用确认框:

if (document.getElementById('myTextBox').value == "")
{
    return confirm('Are you sure you want to exit without filling in ... ?');
}
于 2009-09-03T18:35:16.163 回答