2014-08-31 110 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 = " "; 

就个人而言,我更喜欢后一种方法导致其代码较少。我希望这有帮助!! :)