Titanium Appcelerator-在文本字段中输入出生日期

时间:2018-09-07 10:27:11

标签: javascript android ios titanium-mobile appcelerator-titanium

我正在尝试设置文本字段的格式,以便用户输入出生日期。

当前,当用户开始输入第三个字符时,我正在添加“ /”。

但是,当用户键入第二个字符时,我需要添加“ /”。

请在下面找到我的代码

$.dobTextfield.addEventListener("change", function (event) {
    var dobValue = $.dobTextfield.value;

    dobValue = dobValue.replace(/\//g, '');
    var newVal = '';
    var sizes = [2, 2, 4];

    for (var i in sizes) {
        if (dobValue.length > sizes[i]) {
            newVal += dobValue.substr(0, sizes[i]) + '/';
            dobValue = dobValue.substr(sizes[i]);                   
        }
        else
            break;
    }           
    newVal += dobValue;
    $.dobTextfield.value = newVal;  
});

1 个答案:

答案 0 :(得分:0)

建议:使用日期选择器

我建议您用标签替换文本字段(如果重要的话,样式可能看起来像文本字段)。

然后,我会将click事件添加到标签中,该事件将显示日期选择器。 Date Picker Docs

您可以根据日期选择器的值更新标签的值。

现有代码的解决方案

var oldValue;

$.dobTextfield.addEventListener("change", function (event) {
    var dobValue = $.dobTextfield.value;

    // this checks to see if the user has removed a slash bu hitting backspace
    // without this the user would not be able to delete a back space
    if (oldValue == dobValue + "/") {
        return;
    }

    var newVal = '';
    var sizes = [2, 2, 4];

    if (dobValue.length == 2 || dobValue.length == 5) {
        dobValue += "/";
    }

    $.dobTextfield.value = dobValue;  
    oldValue = $.dobTextfield.value;
});

当用户键入第二个字符时,这将输入斜杠;如果需要编辑日期,还允许用户使用退格键删除斜杠。

其他注意事项

您当前的文本字段允许用户输入无效的日期。例如,用户可以输入日期,例如60/99/2018。使用日期选择器将无需进行此类验证。