2016-12-03 47 views
0

我試圖做一個字段來驗證['A'..'Z']之間寫下的最後一個字符,但不知道爲什麼警告不會顯示。最後一個字符的驗證

<html> 
<body> 
    <p>  
    <label>field</label> 
    </p> 
    <p>  
    <textarea name="rq" id="textarea" cols="45" rows="5" onkeyup="MyFunc()"> 
    </textarea> 
    </p> 
<script> 
    function Myfunc(){ 
     stc=document.rq.value.charAt(document.rq.value.length-1); 
     if(stc.toUpperCase().charCodeAt(0)<65 || charCodeAt(0)>90){ 
     alert("false"); 
     } 
    } 
</script> 
</body> 
</html> 
+4

有信息太少。請提供一個完整的例子,並解釋究竟「不起作用」。見[問]和[mcve]。 –

+1

請澄清你的目標是檢查'.charCodeAt(0)<= 65' –

+0

編輯應該現在清除 –

回答

1

看看這個例子,我把你的代碼改了一下。 您與f在MYFUNC

<script language=javascript> 
 
    function MyFunc(){ 
 
     var value=document.getElementById("textarea").value;  
 
     var stc = value.charAt(value.length-1).toUpperCase(); 
 
     if(stc.charCodeAt(0)<65 || stc.charCodeAt(0)>90){ 
 
     alert("false"); 
 
     } 
 
    } 
 
</script> 
 
<textarea name="rq" id="textarea" cols="45" rows="5" onkeyup="MyFunc()"> 
 
</textarea>

+0

仍然不能正常工作 –

+0

點擊運行代碼片段,然後嘗試輸入<或#或(... – Alon

+0

Thx它現在工作! –

0

我不知道你測試的字符到底是什麼。但是,除非stc的第一個字符是"a",其toUpperCase().charCode是65,否則很可能很少顯示警告。'B' charcode是66,依此類推。

您是否在測試數字或特殊字符?這可能不是這種情況,因爲你是「upperCasing」字符。

+0

我想驗證最後一個字符,看看它是一個字母字符或其他字符。 –

+0

@medamine。阿隆的答案就是你需要的答案。 – Kanak

0

有問題,你也可以用正則表達式解決您的問題,只是提醒 - JavaScript是大小寫敏感的

<html> 
<body>  
<label>field</label> 
<br> 
<script language=javascript> 
    function MyFunc(){ 
     var str = document.getElementById("textarea").value; 
     var last_character = str[str.length-1]; 
     if(last_character.match(/[a-zA-Z]/i)){ 
     alert("false"); 
     } 
    } 
</script> 
<textarea name="rq" id="textarea" cols="45" rows="5" onkeyup="MyFunc()"></textarea> 

</body> 
</html> 
+0

測試不起作用 –

+0

它會引發警報,如果你輸入az或AZ或它應該在其他情況下執行它?那麼你可以添加!這裏:**如果(!last_character.match(/ [a-zA-Z]/i)){** –

+0

thx男人,但你做了我想要的相反 –

相關問題