如何用JS验证某一个文本框输入信息后,另一个文本框不能编辑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用JS验证某一个文本框输入信息后,另一个文本框不能编辑相关的知识,希望对你有一定的参考价值。

我刚学JS,求大佬。有文本"txt1"和"txt2",需要实现的功能是:“txt1”或者“txt2”输入信息后,另一个不能进行编辑求大佬代码应该怎么写?

参考技术A 利用input标签的oninput事件
和input标签的disabled属性
<input id="a" type="text" oninput="f(this.value)">
<input id="b">
<script>
function f(value)

document.getElementById('b').disabled= value=='aa';

</script>

如何用文本框替换数据验证输入消息

【中文标题】如何用文本框替换数据验证输入消息【英文标题】:How to replace the data validation input message with a textbox 【发布时间】:2018-07-17 23:23:10 【问题描述】:

输入消息数据验证限制为 255 个字符和 9 行。如何用文本框替换它。这有没有可能? 这是我的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    调暗为范围
    Dim arr, cellVal 作为变体
    设置 rng = Range("A1:A10")
    arr = rng.Value
    If Not Intersect(Target, rng) 什么都不是

    对于 i = 1 到 rng.Rows.Count
        对于 j = 1 到 rng.Columns.Count
            cellVal = arr(i, j)
            选择案例 cellVal
              案例是=“A”
                  rng(i, j).Validation.InputMessage = "介绍和历史:" & vbTab & vbCrLf & _
                “一只眼睛或两只眼睛” & vbTab & vbCrLf & _
                “坚韧不拔的感觉/瘙痒与疼痛” & vbTab & vbCrLf & _
                “畏光” & vbTab & vbCrLf & _
                “视觉变化” & vbTab & vbCrLf & _
                "放电存在" & vbTab & vbCrLf & _
                “伤害” & vbTab & vbCrLf & _
                "异物" & vbTab & vbCrLf & _
                “过敏史或花粉热”和 vbTab
              案例是=“B”
                  rng(i, j).Validation.InputMessage = TextBox1.Text
              案例是=“C”
                  rng(i, j).Validation.InputMessage = "胡萝卜"
              其他情况
                  rng(i, j).Validation.InputMessage = "别的东西"
            结束选择
        下一个 j
    接下来我
    万一
结束子

案例“A”显示了数据验证消息的限制。我想用 TextBox1 替换它,如案例“B”所示。请让我知道是否可能。 问候 托马索

【问题讨论】:

【参考方案1】:

您可以通过像这样使各种文本框可见来模仿该行为:

首先创建一个数字或普通文本框 - 使用多种字体、字体大小、颜色、铃声和口哨

然后编写一个Selection_Change 触发器...与您所做的非常相似(注意插入菜单中的文本框是Shapes()

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim MyTB As Shape
    ' hide all boxes
    ActiveSheet.Shapes("TextBox 1").Visible = msoFalse
    ActiveSheet.Shapes("TextBox 2").Visible = msoFalse
    ActiveSheet.Shapes("TextBox 3").Visible = msoFalse

    ' working on B1:B10 in order not to disturb data validation in A1:A10
    If Not Intersect(Target, [B1:B10]) Is Nothing Then

        ' assign correct TextBox to MyTB
        Select Case Target.Value
            Case "A", "a"
                Set MyTB = ActiveSheet.Shapes("TextBox 1")
            Case "B", "b"
                Set MyTB = ActiveSheet.Shapes("TextBox 2")
            Case Else
                Set MyTB = ActiveSheet.Shapes("TextBox 3")
        End Select

        ' position MyTB one cell right/down from Cursor (Target) and make visible
        MyTB.Left = Target(1, 2).Left
        MyTB.Top = Target(2, 2).Top
        MyTB.Visible = msoTrue

    End If
End Sub

你应该完成了吗?!?

(谢天谢地从https://www.lipsum.com/窃取的TextBox内容)

【讨论】:

嗨,迈克仍然使用相同的代码。我试图在带有另一个宏的工作表中引入它,但我不知道为什么它在那里没有魔力。你知道可能是什么原因。非常感谢您的帮助。再次感谢您提供给我的天才代码 那是我的笔记本电脑的问题。现在它工作正常。再次感谢迈克

以上是关于如何用JS验证某一个文本框输入信息后,另一个文本框不能编辑的主要内容,如果未能解决你的问题,请参考以下文章

如何用jquery验证文本框只能输入字母数字和下划线

如何用js把文本框清空?

如何用js实现给某个文本框赋值?

如何用Jquery获取到文本框的值然后局部刷新

请问如何用javascript判断比较两个文本框输入的日期值大小(在JSP文件中)

如何用JQuery判断文本框输入的值是不是含有非法字符