![](/img/trans.png)
[英]Form Validation using javascript . Accepting only text in text area
[英]Accessing a text area within a form using
請您提供以下建議:
我有一張注冊表,在那個文本區域內
<form id="register" name="register" method="post" action="register.php">
<textarea rows="5" id="bio" name="bio" method="post">Biographical information</textarea>
</form>
我一直在嘗試使用Java腳本為onfocus和onblur事件創建一個事件處理程序,因此默認文本將在焦點移開並在模糊時恢復,如下所示:
var bioField = document.getElementById("bio");
bioField.onfocus = function() {
if (bioField.value == "Biographical information") {
bioField.value = "";
}
};
bioField.onblur = function() {
if (bioField.value == "") {
bioField.value = "Biographical information";
}
};
我以為通過id獲得元素會起作用,但事實並非如此。 沒有其他名稱/標識重復。
任何幫助,不勝感激。 多謝你們
使用占位符屬性:
<textarea rows="5" id="bio" name="bio" method="post" placeholder="Biographical information"></textarea>
一切正常,也許問題是占位符默認值為“傳記信息”,並且腳本正在測試“關於您的全部”。 我在發布時所做的更改正是您所需要的。
var bioField = document.getElementById("bio");
bioField.onfocus = function() {
if (bioField.value == "Biographical information") {
bioField.value = "";
}
};
bioField.onblur = function() {
if (bioField.value == "") {
bioField.value = "Biographical information";
}
};
我的有根據的猜測是,您已經將代碼按原樣放置在<head>
內的<script>
標記中,因此,當腳本運行時,表單尚未加載。
將<script>
移動到表單下方,或將所有內容都用window.onload
包裝:
window.onload = function(){
// Code goes here
};
您有兩種解決方案:
為了不使用您編寫的javascript代碼,請使用以下代碼:
<textarea cols="30" rows="5" id="bio" name="bio" onfocus="this.value = '' " onblur="this.value = 'All about you'">Biographical information</textarea>
我認為javascript代碼位於控件之前(我猜在標題中),因此,onfocus和onblur屬性未初始化。 您必須將腳本放在文檔的末尾(在標記之前)。
另外,您的腳本正在搜索其他文本(“關於您的全部”),而不是其中的當前文本(“傳記信息”)。 即使您在文檔的處插入javascript代碼,該代碼也將起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.