检查输入是否正确/不正确,并为输入区域着色

检查输入是否正确/不正确,并为输入区域着色

问题描述:

我必须制作患者表格(我用表格做过)并提出一些个人问题。例如:患者数量。在有人填写他们的电话号码后,我必须检查(使用Javascript)该号码是否包含8位数字。当它包含8个数字时,输入字段变为绿色,并且当输入不正确时,它应该给出消息(即“给一个患者编号8个数字”),并且输入字段应该是红色的。 以下是试图获得正确代码的两种方法,但都无效。有人可以帮助我吗?先进的谢谢!检查输入是否正确/不正确,并为输入区域着色

function checkpnummer() { 
    var pnummer = $('#pnummer').val; 
    if(pnummer != /^([0-9]a{8})$/) { 
     pnummer.style.color = "#CD5C5C"; 
     alert("Vul een patientnummer in dat bestaat uit 8 cijfers."); 
    } 

    else { 
     pnummer.style.color = "#00FA9A"; 
     $('#pnummer').focusout(pnummer); 
    } 
} 
+0

这不是你如何用正则表达式匹配字符串。另外,'val'是一个函数。你正在比较一个函数与正则表达式对象。您需要_match_ _string_来代替。 – Xufox

+0

访问style.color的语法也不正确。 – Nisarg

+1

[jQuery学习中心](https://learn.jquery.com),[MDN:正则表达式指南](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) – Andreas

我可以看到你正在使用jQuery所以这里是正确的解决方案为jQuery的

function checkpnummer() { 
if(!$('#pnummer').val().match(/^\d{8}$/)) { 
    $('#pnummer').css({"background-color": "#CD5C5C"}); 
    alert("Vul een patientnummer in dat bestaat uit 8 cijfers."); 
} 
else { 
    $("#pnummer").css("background-color", "#00FA9A"); 
    $("#pnummer").focusout(); 
} 
} 

我有在您的代码中指出了一些错误 -

  • 错误地使用val()方法
  • 不正确的正则表达式
  • 不正确的方式来改变一个元素的CSS(使用$("element").css("property": "value")
  • 不正确的方法来匹配正则表达式(使用match()法)

我希望这会有所帮助。

+0

谢谢@ anu-007!不幸的是我的代码仍然无法工作。我对jQuery的使用经验不多,你可以告诉我更多关于如何开始($(function)...)我的jquery脚本吗? – Maaike

+0

你只需要调用checkpnummer()函数。为此,我建议在你的html''这是调用checkpnummer()函数时点击按钮。 –

+0

不允许使用按钮来检查输入是否正确。只有正则表达式应该与输入一起检查。当输入正确时,输入栏将变为绿色,否则变为红色。这是我用于css的代码,但是我找不到将代码与html(输入字段)和js(正则表达式)链接的代码,所以我没有使用它。 输入:无效{background_color:#ffdddd; } input:valid {background} color:#ddffdd; } – Maaike

var pnummer = document.getElementById("pnummer").value和尝试这个代码if(pnummer.match(/^([0-9]a{8})$/)) { //true } else { //false }字符串匹配0aaaaaaaa,1aaaaaaaa等