2016-04-06 109 views
-1

在這裏,我已經寫了一些是驗證在形式HTML和JavaScript爲什麼這個代碼不產生任何警告信息

<!DOCTYPE html> 
<html> 
<body> 
<form name="registration"> 
<input style="font-size:16px;" type="text" name="Name" placeholder="Full Name" onchange="checkName()" required /> 
</form> 
<script> 
function checkName() 
{ 
    var uname=document.registration.Name.value; 
    var letters = /^[A-Za-z]+$/; 
    if(uname.value.match(letters)) 
    { 
       alert('fg'); 
    } 
    else 
    { 
     alert('Username must have alphabet characters only'); 
     //uname.focus(); 
    } 
} 
</script> 

</body> 
</html> 

請描述爲什麼它不工作?

+0

你檢查錯誤控制檯?看起來好像在函數後面有一個'}'的''''。 – Pointy

+0

我已經做了一些改變,重新檢查它 –

+0

它以什麼方式「不工作」? *什麼都會發生?有錯誤嗎? – Pointy

回答

1

問題是你正在嘗試獲取值屬性TWICE。像這樣:

var uname=document.registration.Name.value; 

if(uname.value.match(letters)) 

您的uname變量已包含該值,因此您不需要再次獲取它。改變你的if語句來此...

if (uname.match(letters)) 

而且它工作得很好:)

0

使用onchangeinput type = "text"非常罕見 onchange事件通常你離開(blur)控制後,才發生。 onchange主要與select元素的變化有關。 爲了您的情況,最好使用keydown, keyupkeypress事件。

HTML

<input style="font-size:16px;" type="text" name="Name" placeholder="Full Name" onkeyup="checkName()" required /> 

Jsfiddle

+0

這不回答他的問題。它不起作用。 – ManoDestra

+0

@ManoDestra他的問題是沒有產生警報消息這個問題之前,他已經回答了他編輯和刪除警告之外,如果阻止。我想你錯過了那部分&onchange是不正確的事件處理程序文本,我在答案中提到。謝謝 – brk

+0

但它不起作用。問題在於他在獲得value屬性後嘗試獲取value屬性。而你上面的小提琴也有同樣的錯誤。你可能希望修改你的答案。不要試圖粗魯。只是想幫助:) – ManoDestra

相關問題