1

我正在尝试使用 jquery 验证日期。如果用户输入了无效的日期,那么它应该在同一个控件中设置焦点。我写了下面的代码,它在所有浏览器中都可以正常工作,但在 Mozilla 中它不起作用。

JavaScript 代码:

function CheckDate(txt) {
    var isValid = false;
    var txtDate = $('input[id$=' + txt + ']').val();
    if (txtDate.length == 0) {
        isValid = true;
    }
    else {
        if (isDate(txtDate)) {
            isValid = true;
        }
        else {
            isValid = false;
            $('#' + txt).focus();
        }
    }
    
    //alert(txtControl);
}

我在文本框的 onBlur 事件上调用此函数。我对此没有任何解决方案。如果有人知道,请帮助我。

4

4 回答 4

1

尝试.trigger('focus')而不是简单.focus()

于 2012-10-17T06:42:12.150 回答
0

您可以使用此代码

$('#' + txt).attr('value');

并使用它

$('#' + txt).focus();
于 2012-10-17T06:37:02.543 回答
0

在您的代码中,我觉得选择器有问题。我们需要看到 的价值txt。那么你可以改变你的这部分代码:

$('#' + txt).focus();

至:

$('input[id$=' + txt + ']').focus();
于 2012-10-17T06:31:48.700 回答
0

它与 setTimeOut 内的焦点一起工作:http: //www.echoknowledge.com/javascript-focus-is-not-working-in-firefox/

于 2013-10-22T17:46:04.367 回答