在文本框中输入内容之后失去焦点进行判断,如果false让焦点回到文本框,怎么实现?

用户名无法显示 2015-10-13 02:54:07
输入的内容判断为false,弹出提示框,点确定后怎么让焦点回到文本框中?
...全文
471 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
人呢?大神们都在哪里?
  • 打赏
  • 举报
回复

var a =/^[0-9]{4}.[0-1]?[0-9]{1}-[0-9]{4}.[0-1]?[0-9]{1}$/;
var values=$(obj).val();
var arr = values.split("-");
var begTime= arr[0];
var endTime= arr[1];

if(begTime!="" && endTime!=""){

if (!a.test(values)) {
alert("日期格式不正确,正确的格式为:2010.03-2012.05")
setTimeout(function (){
$(obj).focus();
},100);
return false;
}
}


这个方法可以实现焦点回到原来的地方,但是有一个问题就是:如果我这个文本框的内容错误没改动,直接点击下一个有错误的文本框,就会进入死循环,一直判断并弹出提示,光标依次在两个错误的文本框中,怎么解决这个问题?
tony4geek 2015-10-14
  • 打赏
  • 举报
回复
循环的话,你再文本框 change 的时候再调用,不要你鼠标进去就捕捉事件。
  • 打赏
  • 举报
回复
引用 10 楼 shijun1275 的回复:
第一个移动到第二个,对第一个而且,触发失去焦点函数,错误回到第一个;对第二个而言,当光标被第一个强制focus了以后,也会触发失去光标的函数。。。所以一直触发。$(obj).focus();前面加一个$(obj).val("");
那内容不是都被清空了?这样不太好啊,主要是想让人家修改的,一下子清空,客户肯定不满意
shijun1275 2015-10-14
  • 打赏
  • 举报
回复
第一个移动到第二个,对第一个而且,触发失去焦点函数,错误回到第一个;对第二个而言,当光标被第一个强制focus了以后,也会触发失去光标的函数。。。所以一直触发。$(obj).focus();前面加一个$(obj).val("");
  • 打赏
  • 举报
回复
引用 8 楼 King__Jrj 的回复:
obj只设置为当前所点击的元素对象,怎么又会调到前一个对象死循环呢?
就是我现在有两个文本框的内容都是错误的,点击第一个之后不做修改直接点击第二个,他就会一直弹出提示,点击确定能看到光标在两个文本框中依次出现
从小就很呆 2015-10-14
  • 打赏
  • 举报
回复
obj只设置为当前所点击的元素对象,怎么又会调到前一个对象死循环呢?
心随自在飞 2015-10-13
  • 打赏
  • 举报
回复
引用 4 楼 sinat_31240689 的回复:
[quote=引用 2 楼 xiesq5112 的回复:]
focus方法


看下有没有错误? [/quote]


可以
  • 打赏
  • 举报
回复
引用 2 楼 xiesq5112 的回复:
focus方法


看下有没有错误?
  • 打赏
  • 举报
回复
引用 1 楼 qq_26265459 的回复:
if(input_val == 'false'){
alert("input_val is 'false'");
}
obj..focus();



var a =/^(\d{4}).(\d{2})$/;
var values=$(obj).val();
if(values!=""){
if (!a.test(values)) {
alert("日期格式不正确,正确的格式为:2010.03")
$(obj).focus();
}

这个有没有错误?
qq_26265459 2015-10-13
  • 打赏
  • 举报
回复
if(input_val == 'false'){
alert("input_val is 'false'");
}
obj..focus();
心随自在飞 2015-10-13
  • 打赏
  • 举报
回复
focus方法
VB程序设计综合复习题 1、叙述Visual Basic的特点。 2、当窗体上有三个文本框和一个命令按钮,若程序运行时,焦点定位在第三个文本框(Text3)处,应对何控件的什么属性进行何种设置? 3、若要对窗体上的三个文本框输入数据,个控件焦点的移动可通过Tab键(系统本身具有的),也可通过回车键,则要对文本框的什么事件编程? 4、当某文本框输入数据后(按了回车键),进行判断认为数据输入错,怎样删除原来数据?怎样使焦点回到文本框重新输入? 5、怎样把关于Command命令按钮的Enabled属性的帮助示例代码复制到你的代码窗口?已知帮助的代码如下: Private Sub Form_Load() Text1.Text = ”” ‘消除文本框内容 Command1.Caption = “Save” ‘在按钮上放置标题 End Sub Private Sub Text1_Change() If Text1.Text = “” Then ‘查看文本框是否为空 Command1.Enabled = False ‘使按钮无效 Else Command1.Enabled = True ‘使按钮有效 End If End Sub 6、当运行程序前,对某些控件设置属性值,除了在窗体直接设置外,还可以通过代码设置,这些代码一般放在什么事件?例如,程序要将命令按钮定位在窗体的央,请写出事件过程。 7、在KeyPress事件,如何取消用户刚键入的字符? 8、静态数组与动态数组的区别是什么?在声明静态数组、重定义动态数组时的下标都可以用变量来表示吗? 9、函数过程和子过程的区别是什么? 10、子过程调用有哪两种形式? 11、什么是形参?什么是实参?什么是值引用?什么地址引用?地址引用时,对应的实参有没有限制? 12、如果要时钟控件每半分钟发生一个Timer事件,则Interval属性应设置为多少? 13、如果在KeyDown事件过程将KeyCode设置为0,KeyPress的KeyAscii参数会不会受影响?如果输入的对象是文本框,那文本框内容是否有影响? 14、构造满足下列条件的Open语句。 (1)建立一个新的顺序文件SEQNEW.DAT,供用户写入数据,指定文件号为1。 (2)打开一个老的顺序文件SEQOLD.DAT,用户将从该文件读出数据,指定文件号为2。 (3)打开一个老的顺序文件SEQAPPEND.DAT,用户将在该文件后面添加数据,文件号通过调用FreeFile函数获得。 15、请写出程序代码片段,将磁盘上的两个文件合并。(提示:把它们作为二进制文件打开) 16、PictureBox控件和Image控件有什么区别? 17、Visual Basic可处理哪些格式的图形文件? 18、在程序运行时怎样在图形(像)框装入或删除图形? 19、简述Printer对象与Printers集合对象的区别。 20、当要在ToolBar控件添加一个按钮,如何实现? 21、当要修改ToolBar控件某按钮的图像,如何实现? 22、Visual Basic记录集有几种类型?有
1、主要属性: (1)Text属性:Text属性是文本框最重要的属性,因为要显示的文本就包含在Text属性。默认情况下,最多可在一个文本框输入2048个字符。如果将MultiLine属性设置为true,则最多可输入32KB 的文本。Text属性可以在设计时使用【属性】窗口设置,也可以在运行时用代码设置或者通过用户输入来设置。可以在运行时通过读取Text属性来获得文本框的当前内容。 (2)MaxLength 属性:用来设置文本框允许输入字符的最大长度,该属性值为 0 时,不限制输入的字符数。 (3)MultiLine 属性:用来设置文本框的文本是否可以输入多行并以多行显示。值为 true 时,允许多行显示。值为false时不允许多行显示,一旦文本超过文本框宽度时,超过部分不显示。 (4)HideSelection属性:用来决定当焦点离开文本框后,选的文本是否还以选的方式显示,值为true,则不以选的方式显示,值为 false将依旧以选的方式显示。 (5)ReadOnly属性:用来获取或设置一个值,该值指示文本框的文本是否为只读。值为 true时为只读,值为 false时可读可写。 (6)PasswordChar 属性:是一个字符串类型,允许设置一个字符,运行程序时,将输入到 Text 的内容全部显示为该属性值,从而起到保密作用,通常用来输入口令或密码。 (7) ScrollBars属性: 用来设置滚动条模式, 有四种选择: ScrollBars.None (无滚动条), ScrollBars.Horizontal(水平滚动条),ScrollBars.Vertical(垂直滚动条),ScrollBars.Both(水平和垂直滚动条)。 注意:只有当MultiLine属性为true时,该属性值才有效。在WordWrap属性值为true时, 水平滚动条将不起作用 (8)SelectionLength属性:用来获取或设置文本框选定的字符数。只能在代码使用,值为0 时,表示未选任何字符。 (9)SelectionStart属性:用来获取或设置文本框选定的文本起始点。只能在代码使用,第一个字符的位置为0,第二个字符的位置为1,依此类推。 (10)SelectedText 属性:用来获取或设置一个字符串,该字符串指示控件当前选定的文本。只能在代码使用。 (11)Lines:该属性是一个数组属性,用来获取或设置文本框控件的文本行。即文本框的每一行存放在 Lines数组的一个元素。 (12)Modified:用来获取或设置一个值,该值指示自创建文本框控件或上次设置该控件的内容后,用户是否修改了该控件的内容。值为true表示修改过,值为 false表示没有修改过。 (13)TextLength属性:用来获取控件文本的长度。 (14)WordWrap:用来指示多行文本框控件在输入的字符超过一行宽度时是否自动换行到下一行的开始,值为 true,表示自动换到下一行的开始,值为false表示不自动换到下一行的开始。 2、常用方法: (1)AppendText方法:把一个字符串添加到文件框文本的后面,调用的一般格式如下: 文本框对象.AppendText(str) 参数 str是要添加的字符串。
实现功能:模拟微软计算器界面,实现四则混合运算1.键盘输入(KeyUp事件)2.无焦点(按钮失去焦点)3.实现优先级运算。比如直接输入1-2*3=-5,而不是微软计算器的-34.使用操作工厂,使用接口5.实现菜单里的复制粘贴功能6.可视化文本框7.实现间操作结果显示8.正则表达式验证输入是否为数字9.小数点个数校验10.使用发消息_Flag实现操作符状态的判定及转换部分注释预览:失去焦点: private void text_display_GotFocus(object sender, EventArgs e) { /* * 文本框的“获取焦点”事件发生时执行的方法。每次获得焦点时,就会执行此方法,使之马上失去焦点。 * * 当某控件的Enable属性变为False的时候,它的焦点将转移到TabIndex属性值比它大1的控件上。 * 这时,如果有多个控件的TabIndex属性值同时比它大1,鼠标点击按钮或敲击键盘时候会发出“咚”的一声。 * 故在本程序,将label_m控件的TabIndex设为1,其它的全部设为0,因此所有的控件在不可用时焦点都会转移到label_m上, * 因为label_m没有Click和KeyUp事件,所以不会出错。 * 这样就实现了全局无焦点的功能。 * */ text_display.Enabled = false; //先使文本框不可用,这时焦点转移到TabIndex比文本框大的下一个控件上 text_display.Enabled = true; //再使文本框可用,这时焦点不会返回。 }KeyUp事件: else if (e.KeyCode == Keys.NumPad1 || e.KeyCode == Keys.D1) { /* 当窗体的某个控件触发了其本身的KeyUp事件之后, * 将会调用keyUp()方法,并判断是哪个按键 * 如果是大键盘或者是小键盘的1时,便调用num_Click()方法。 * 参数是no_1和e。 * 在这里的no_1指的是按钮no_1,e是KeyUp事件 * no_1是按钮,参数格式正确;而e是KeyUp事件,也是事件的一种。KeyEventHandler当然也是EventHandler的一部分。 * 所以调用了之num_Click()后一切按照no_1按钮事件的操作执行 * 所以no_1按钮的这一句 * this.no_1.KeyUp += new System.Windows.Forms.KeyEventHandler(this.num_Click); * 可以不写 */ num_Click(no_1, e); }小数点点击的校验: private void dot_Click(object sender, EventArgs e) { if (!dotFlag) //没点击的情况下 { if (operFlag) //如果点击了运算符,就将文本换为"0.",并将小数点设为已点击 { text_display.Text = "0."; dotFlag = true; } else if (text_display.Text.Equals("0.")) //如果没有点击运算符,切当前文本是"0.",便保持现状但将小数点设为已点击 { dotFlag = true; } else if (text_display.Text.Equals("0") || text_display.Text.Equals("")) { text_display.Text = "0."; dotFlag = true; } else //其他情况直接添加并将小数点设为已点击 { text_display.Text = text_display.Text + "."; dotFlag = true; } } else //如果已点击则什么也不做 { } enterFlag = false; label_m.Focus(); //键盘按键之后焦点由下面的各个_GotFocus()方法控制;鼠标点击之后焦点有这条语句控制,同样使焦点转移到label_m上。 }

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧