【问题标题】:Checking textfield values if they are matching检查文本字段值是否匹配
【发布时间】:2013-08-30 15:28:08
【问题描述】:

我正在制作一个小表格,您可以在其中选择您的价值。

如果没有正确填写值(我已经给出了一些示例答案) 我想弹出一个警告框,指示错误填写的文本字段。

似乎无法让它工作...... 这是我尝试过的

if(document.getElementById("BS").value.match ("thin","thick","medium")
{
    alert("Fill in the correct values");
}

这是小提琴。 http://jsfiddle.net/vuc8Z/

【问题讨论】:

  • 首先,我认为您的“if”中有错字(缺少右括号)。其次,match函数需要一个参数,它是一个正则表达式。
  • 您使用了不适当的控件。边框样式和粗细应该是下拉列表(选择控件)。颜色应该是文本控件(HTML5
  • 我的回答有用吗?
  • @Sergio 嘿,是的,它很有用,现在非常有用,只有一件事,我有 1 个使用十六进制代码的文本字段,我需要它只接受 #112233 和 #AABBCC,并且介于两者之间的一切。
  • 您是指#112233 和#aaccbb 之间的所有颜色,还是仅指这两种颜色?

标签: javascript validation match textfield


【解决方案1】:

这是我的建议:

var val = document.getElementById("BD").value;
 if (!(val == "thin" || val =="thick" || val =="medium")) {
    alert("Vul een geldige waarde in bij de aangegeven velden");
}

演示here

请注意,您使用的是getElementById("BS"),但我认为您想要的是BD。我将您的匹配函数更改为三重 ||(或)if 语句。

我将您的 if 语句移到“go”按钮单击处理程序内部,以便在单击按钮时触发它。

match() 函数需要一个正则表达式,您可以在此处阅读更多信息(MDN:.match())。

编辑:

要检查颜色文本输入的格式是否正确,您可以使用:

var filter = /^#(?:[0-9a-fA-F]{3}){1,2}$/;
if (!color.match(filter)) {
    alert('Color code Error!');
}

更新了演示here

【讨论】:

    【解决方案2】:

    如果你想使用 match 方法,那么你可以使用 like :

       var str = document.getElementById("BD").value;
       if(str.match('thin') || str.match('thick') || str.match('medium')) 
       {
         alert("Fill in the correct values");
       }
    

    据我所知,match 以正则表达式为参数,不接受多个值。

    【讨论】:

      猜你喜欢
      • 2018-05-08
      • 2022-09-24
      • 2011-11-12
      • 1970-01-01
      • 1970-01-01
      • 2010-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多