如何使easyui-datebox文本框中的日期不能点击,也就是禁用文本框

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使easyui-datebox文本框中的日期不能点击,也就是禁用文本框相关的知识,希望对你有一定的参考价值。

参考技术A 可以$(selector).datebox(disabled:true);经测试没问题。 参考技术B 设置disabled属性试一下 参考技术C editable="false" 参考技术D disabled="disabled"追问

用jquery如何设置,你说的这种是一般的文本框设置,对于class=easyui-datebox文本框根本没用

追答

我测试过,有用才说的。

Excel VBA:如何使旋转按钮控制多个文本框?

【中文标题】Excel VBA:如何使旋转按钮控制多个文本框?【英文标题】:Excel VBA: How do I make spin button control multiple text boxes? 【发布时间】:2014-01-03 13:51:34 【问题描述】:

我有一个包含 3 个文本框和一个微调器的日期的表单。 我使用了 3 个文本框来解决国际日期的问题,因此 Excel 不可能根据不同的格式误解预期的日期。

无论如何... 当我单击微调器时,下一个或上一个日期出现在 3 个框中。 IE。如果是 2013 年 2 月 28 日,它将转到 2013 年 3 月 1 日。它一次移动一天。

我的老板希望它根据光标所在的文本框移动。所以如果它在 txtMonth 中,日期应该从 2013 年 2 月 28 日到 2013 年 3 月 28 日等。

如何让微调器检测到哪个文本框包含光标(如果有的话?)一旦知道了,我就可以进行数学计算了。

Private Sub spinDate_SpinDown()
    Dim bGoodDate As Boolean
    Dim iMonth As Integer

    Dim dDate As Date
    If Not bIsValidDate(bGoodDate) Then   ' Check that the 3 boxes make a valid date
        GoTo ErrorExit
    End If
    iMonth = Month(DateValue("01-" & Me.txtMon & "-2014"))
    dDate = DateValue(Me.txtDay & "-" & Me.txtMon & "-" & Me.txtYear)

    dDate = DateAdd("d", -1, dDate)  ' Decrement date


    Me.txtDay = Format(Day(dDate), "00")
    Me.txtMon = Format(dDate, "mmm")
    Me.txtYear = Format(Year(dDate), "0000")

    m_clsCRE.ETA = dDate
    m_clsCRE.bChanged = True
ErrorExit:
End Sub

* 已更新以下解决方案 ** ' 此解决方案检测光标是否在日、月或年框中的最后一个。 ' 旋转按钮按所选数量(日、月或年)递增 ' 这些框是链接在一起的,因此旋转会根据您的选择将您带到下一个有效日期

Private Sub spinDate_SpinDown()  ' Same for SpinUp but used +1
    Dim bGoodDate As Boolean

    Dim dDate As Date
    If Not bIsValidDate(bGoodDate) Then    ' check that date user typed in boxes is valid
        GoTo ErrorExit
    End If

    dDate = DateValue(Me.txtDay & "-" & Me.txtMon & "-" & Me.txtYear)
    If Len(msDatePart) = 0 Or StrComp(msDatePart, "DAY", vbTextCompare) = 0 Then
        dDate = DateAdd("d", -1, dDate)
    ElseIf StrComp(msDatePart, "MONTH", vbTextCompare) = 0 Then
        dDate = DateAdd("m", -1, dDate)
    Else ' Year
        dDate = DateAdd("yyyy", -1, dDate)
    End If


    Me.txtDay = Format(Day(dDate), "00")
    Me.txtMon = Format(dDate, "mmm")
    Me.txtYear = Format(Year(dDate), "0000")

    m_clsCRE.ETA = dDate   ' Save real date value (not text form)
    m_clsCRE.bChanged = True
ErrorExit:
End Sub

Private Sub txtDay_Enter()
    ' Used with calendar spinner
    msDatePart = "DAY"
End Sub
Private Sub txtMon_Enter()
    ' Used with calendar spinner
    msDatePart = "MONTH"
End Sub
Private Sub txtYear_Enter()
    ' Used with calendar spinner
    msDatePart = "YEAR"
End Sub

【问题讨论】:

顺便说一句,你见过THIS 悉达多,我下载了你的日历选择器并开始使用它。做了一些我在另一篇文章中描述的更改。它非常有用!我可能最终会在这个项目或下一个项目中使用它。 【参考方案1】:

试试这个:

此代码将在按下 SpinButton 之前检测最后一个带有焦点的 TextBox。 请注意,一旦您将焦点设置在另一个对象上,Textbox 或任何其他对象都会失去焦点。

Option Explicit
Public LastActiveObject As String 'Declare a public variable to store the last active object name

Private Sub SpinButton1_SpinDown() 'Here you test which Textbox was last active

If LastActiveObject = "TextBox1" Then MsgBox "TB1"
If LastActiveObject = "TextBox2" Then MsgBox "TB2"
If LastActiveObject = "TextBox3" Then MsgBox "TB3"

End Sub

在所有文本框上添加退出事件以将其名称存储在LastActiveObject 变量中

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

LastActiveObject = TextBox1.Name

End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)

LastActiveObject = TextBox2.Name

End Sub

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)

LastActiveObject = TextBox3.Name

End Sub

希望这能帮助你完成你想要的。

【讨论】:

感谢 L42 和 @sam092 的精彩回答!【参考方案2】:

我不确定如何检测当前焦点所在的对象。

作为初步解决方法,您可能会在下面看到我的代码。我们不是检测焦点上的对象,而是检测 enter 事件何时“输入”文本框。然后我们使用一个全局变量来存储那个文本框的名字

Option Explicit
'Declare a global variable here
Dim onFocus As String

Private Sub SpinButton1_SpinDown()
    Dim obj As Object
    Set obj = Controls(onFocus)
    obj.Value = obj.Value + 1
End Sub

Private Sub TextBox1_Enter()
    onFocus = "TextBox1"
End Sub

Private Sub TextBox2_Enter()
    onFocus = "TextBox2"
End Sub

Private Sub TextBox3_Enter()
    onFocus = "TextBox3"
End Sub

Private Sub UserForm_Initialize()
    Controls("Textbox1").SetFocus
End Sub

【讨论】:

以上是关于如何使easyui-datebox文本框中的日期不能点击,也就是禁用文本框的主要内容,如果未能解决你的问题,请参考以下文章

如何将文本框中的日期插入数据库

如何使文本框中的字体上下左右都居中

如何从包含文本的熊猫数据框中的列中提取年份(或日期时间)

如何使文本框中的文本影响代码?

如何通过 C# ASP.net 从 SQL Server 中的文本框中存储日期

如果给定jquery ui进行日期选择,如何不允许用户在日期字段的文本框中输入? [复制]