将重点放在文本框的onChange事件上

时间:2013-08-12 12:03:03

标签: javascript jquery

如果结果错误,我想将重点放在文本框本身的on-change事件上。假设我的文本框id是'txtCaseCode'。

$('#txtCaseCode').change(function() {

     if(condition does not satsfy)
     {
        alert('Wrong ID');
        $('#txtCaseCode').focus();
     }

}

它不起作用。我将如何实现这一目标?

以下是附加模糊事件后的代码:

 $('#txtCaseCode').change(function() {
     if(condition does not satsfy)
         {
            alert('Wrong ID');
            $('#txtCaseCode').blur(function(){
            $('#txtCaseCode').focus();//this is not working
            $('#txtCaseCode').val('Please click here.');//this is not working
             });
         }
     else
        {
           execute code;
        }
}

2 个答案:

答案 0 :(得分:0)

更改您附加到blur的事件。这样,只要文本框失去焦点,就可以将焦点返回给它。

change事件发生在blur之前,因此,在焦点事件上调用focus()不执行任何操作。

答案 1 :(得分:0)

尝试以下:

 var $txt = $("#txtEmail").focus();

  $txt.blur(function(){   
    if(!validateEmpty(this)){
       $(this).focus();
    }    
 });

function validateEmpty(el){
    var flag = true,
         v = $(el).val();

    if(v == ""){
        alert("Can't Leave Blank");
        flag = false;
    }

   return flag;
}

在这里工作小提琴:http://jsfiddle.net/4anAx/2/

我希望它有所帮助。