当有DB调用时,调用验证Jscript函数的正确方法是什么?

What is the correct way to call a validation Jscript function when there is a DB call?

本文关键字:调用 方法 是什么 Jscript DB 验证 当有 函数      更新时间:2023-09-26

抱歉,如果标题没有解释太多。

我有一个带有文本框、按钮和错误信息的页面。

我需要验证在我的文本框中输入的文本是否为空或空,具有良好的长度,没有奇怪的字符在它,最后但并非最不重要的是,用户名不存在于我的数据库中。这部分已经完成并开始工作了。

我的问题是,什么是最好的方式来调用我的Jscript函数验证asp:文本框的用户名是类型。

现在我看到三种不同的方法。

  1. 使用。blur在文本框失去焦点时调用它

  2. 使用。keyup或。keydown在按下键时调用

  3. 使用计时器每X秒验证一次

现在。blur的问题是,如果不把焦点放在页面上唯一值得关注的东西上,它就无法验证。keyup和keydown的问题是它会多次调用DB。定时器的问题是我不确定定时器是否有问题,这就是我问的原因。

我也有一个验证服务器端,所以它不能通过。

更多信息,这里的jscript与。blur我现在。

<script type="text/javascript">
var Name;
var NameValid = false;
$(document).ready(function () {
    Name = $("#txtBox");
    validateName();
    Name.blur(function () {
        validateName();
    });
});
function validateName() {
    NameValid = false;
    PageMethods.NameValidMethod(Name.val(), successName, error);
};

最好的方法是什么?

编辑:添加更多信息。现在我的页面只有一个文本框和一个按钮。在未来,当我要更新我的网站时,我将在页面上有更多的文本框。

对于短表单,最好的用户体验是在提交表单时执行验证。你是否完全反对使用按钮或依赖用户按下"enter"键?

然后在提交表单时使用Javascript进行以下验证:"如果我的文本框中输入的文本不是空或空的,具有良好的长度,并且其中没有奇怪的字符"

然后,如果所有这些都通过,您将继续提交到服务器以检查用户名的唯一性。

您看过.submit()函数吗?它在提交表单之前调用,通常用于验证表单:

你可以这样调用:

$('form').on('submit',function(data){
    //Validate the users info.
    //if not valid call e.preventDefault();
});

API: http://api.jquery.com/submit/

如果你想去验证每个字段(享受IMO)的道路上,你可以使用change() jquery函数调用时,一些变化:

$('input..').on('change',function(){
    //That input has changed, validate it now.
});

API: http://api.jquery.com/change/

我建议您选择正确的方式来处理客户端验证。基于时间的验证似乎不是一个好主意,而且也不太实用。