2014-08-31 151 views
0

我有一個非常基本的代碼。但是,我無法通過單擊id(userYOB)來清除年份。該代碼僅適用於要求年份的代碼。它不僅僅是清除,但我也想要一旦警報被點擊確定後重新放置佔位符。無法清除輸入域

感謝您的幫助。

[小提琴] http://jsfiddle.net/vineetgnair/j8zjjj9r/26/

var d = new Date(); 
var currentYear = d.getFullYear(); 



function test() { 

    var userYearOfBirth = document.getElementById("userYOB").value; 
    var authorisedAge = 19; 
    var currentAge = parseInt(currentYear - userYearOfBirth); 
    //console.log(currentAge); 

    if (currentAge < authorisedAge) { 
     alert("You are not authorised to visit the site"); 
     document.getElementById("userYOB").value = " "; 
    } else { 
     alert("Welcome to the site!"); 
     userYearOfBirth = " "; 
    } 

} 
+0

如果要清除年份的文本框並顯示佔位符/水印文本,則將該值設置爲空字符串document.getElementById(「userYOB」)。value =「」; – user2321864 2014-08-31 14:13:30

回答

2

else部分說

document.getElementById("userYOB").value= " "; 

代替

userYearOfBirth = " "; 

由於userYearOfBirth是一個簡單的字符串,以便更新它不更新值的文本框。

0

請else部分後添加以下行,

document.getElementById("userYOB").value= " "; 
    document.getElementById("userMOB").value= " "; 
    document.getElementById("userDOB").value= " "; 

這將清除領域和帶回的佔位符。爲什麼

userYearOfBirth = " " 

不起作用的原因是因爲在以下行中的變量實際持有的價值不是元素本身,

var userYearOfBirth = document.getElementById("userYOB").value; 

這將是更明智,如果你,取而代之的是上面的行與,

var userYearOfBirth = document.getElementById("userYOB"); 

現在你有變量中的元素的引用。你可以很容易地通過改變元素值,

userYearOfBirth.value = " "; 

就個人而言,我更喜歡後一種方法導致其代碼較少。我希望這有幫助!! :)