2017-09-16 93 views
-2

我必須製作患者表格(我用表格做過)並提出一些個人問題。例如:患者數量。在有人填寫他們的電話號碼後,我必須檢查(使用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

回答

0

我可以看到你正在使用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

0

var pnummer = document.getElementById("pnummer").value和嘗試這個代碼if(pnummer.match(/^([0-9]a{8})$/)) { //true } else { //false }字符串匹配0aaaaaaaa,1aaaaaaaa等