GWTBootstrap - Masking Datepicker

时间:2016-12-02 13:46:06

标签: datepicker gwtbootstrap3

要求:在模糊/表单提交上屏蔽日期选择器。

我能够使用forceparse设置为false来完成对Blur的屏蔽,但是我无法导航到datepicker中的下个月/年,可能因为我正在覆盖DOM处理程序。

Private Sub Example()
    Dim a(3) As Variant 'An array

    Set wbk = ActiveWorkbook

    a(1) = "MySheet1"
    a(2) = "MySheet2"
    a(3) = "MySheet3"

    For i = 1 To 3
        Set wks = wbk.Sheets(a(i)) 'This line is key to what you want to achieve
        wks.Cells(1, 1) = "Hi, you're in sheet number " & i & " and is named " & a(i)
    Next
End Sub

我无法使用ChangeDateHandler,因为它会自动将“1/1/19”假定为“1/1/1900”并屏蔽文本输入的中间文本。还有其他办法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

如果您遇到DatePicker TextBox的问题,可以隐藏它并使用任何其他Widget。

TextBox主要用于显示焦点时的DatePicker,以显示所选日期并手动输入日期。

以下是如何使用您自己的TextBoxDatePicker的示例代码(我使用VerticalPanelDatePicker下方显示TextBox:< / p>

VerticalPanel container = new VerticalPanel();

final DatePicker dob = new DatePicker();

// hide DatePicker's TextBox
dob.getTextBox().getElement().getStyle().setDisplay(Display.NONE);

final TextBox box = new TextBox(); 
box.addFocusHandler(new FocusHandler() {
    @Override
    public void onFocus(FocusEvent event) {
        dob.show();
        box.setText("**unmasked value**");
    }
});

dob.addHideHandler(new HideHandler() {
    @Override
    public void onHide(HideEvent hideEvent) {
        box.setText("**masked value**");
    }
});

dob.addChangeDateHandler(new ChangeDateHandler() {
    @Override
    public void onChangeDate(ChangeDateEvent evt) {
        Window.alert("ChangeDateEvent");
    }
});

container.add(box);
container.add(dob);

请注意,您需要在dob.show()关注时致电TextBox。我还使用DatePicker的{​​{1}}而不是HideHandler的{​​{1}}来显示屏蔽值,但您可以根据需要更改它。

如果您想更改解析TextBox等日期的方式,现在可以将自己的解析器添加到BlurHandler