检查输入是否正确/不正确,并为输入区域着色
我必须制作患者表格(我用表格做过)并提出一些个人问题。例如:患者数量。在有人填写他们的电话号码后,我必须检查(使用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);
}
}
我可以看到你正在使用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()
法)
我希望这会有所帮助。
谢谢@ anu-007!不幸的是我的代码仍然无法工作。我对jQuery的使用经验不多,你可以告诉我更多关于如何开始($(function)...)我的jquery脚本吗? – Maaike
你只需要调用checkpnummer()函数。为此,我建议在你的html''这是调用checkpnummer()函数时点击按钮。 –
不允许使用按钮来检查输入是否正确。只有正则表达式应该与输入一起检查。当输入正确时,输入栏将变为绿色,否则变为红色。这是我用于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等
这不是你如何用正则表达式匹配字符串。另外,'val'是一个函数。你正在比较一个函数与正则表达式对象。您需要_match_ _string_来代替。 – Xufox
访问style.color的语法也不正确。 – Nisarg
[jQuery学习中心](https://learn.jquery.com),[MDN:正则表达式指南](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) – Andreas