当有DB调用时,调用验证Jscript函数的正确方法是什么?
What is the correct way to call a validation Jscript function when there is a DB call?
抱歉,如果标题没有解释太多。
我有一个带有文本框、按钮和错误信息的页面。
我需要验证在我的文本框中输入的文本是否为空或空,具有良好的长度,没有奇怪的字符在它,最后但并非最不重要的是,用户名不存在于我的数据库中。这部分已经完成并开始工作了。
我的问题是,什么是最好的方式来调用我的Jscript函数验证asp:文本框的用户名是类型。
现在我看到三种不同的方法。
-
使用。blur在文本框失去焦点时调用它
-
使用。keyup或。keydown在按下键时调用
-
使用计时器每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/
我建议您选择正确的方式来处理客户端验证。基于时间的验证似乎不是一个好主意,而且也不太实用。
- 未捕获错误:无法在初始化之前调用方法;
- 通过ajax从客户端调用C#方法来执行C#方法
- 如何避免在angular上多次调用方法;s ng重复
- React路由器错误-'无法调用方法'getRouteAtDepth'的未定义'
- 从window.onbeforeunload调用方法背后的代码
- 当输入字段为空时,如何在angular中调用方法
- 函数调用方法有什么用
- 多次调用方法后返回相同promise的模式
- 当从Chrome扩展动态注入JS时,从onload()内部调用方法
- 茉莉花 - 未调用方法
- jQuery如何在原型中调用方法
- ng显示“;调用方法“;不起作用
- Odoo销售点如何访问模型并使用JS调用方法
- 从React调用方法.JS州
- TinyMCE验证给出错误:无法调用方法'getContent'的未定义
- 向模板实例变量传递调用方法调用的结果时出现异常
- 如何在对象中调用方法
- 检查对话框是否为 Open 会引发“初始化前无法在对话框上调用方法”错误
- 在输入类型提交按钮上调用 C# 方法
- 通过类选择器单独调用方法