簡體   English   中英

使用以下命令訪問表單中的文本區域

[英]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";
    }
};

http://jsfiddle.net/YeaTQ/1/

我的有根據的猜測是,您已經將代碼按原樣放置在<head>內的<script>標記中,因此,當腳本運行時,表單尚未加載。

<script>移動到表單下方,或將所有內容都用window.onload包裝:

window.onload = function(){
   // Code goes here
};

您有兩種解決方案:

  1. 為了不使用您編寫的javascript代碼,請使用以下代碼:

    <textarea cols="30" rows="5" id="bio" name="bio" onfocus="this.value = '' " onblur="this.value = 'All about you'">Biographical information</textarea>

  2. 我認為javascript代碼位於控件之前(我猜在標題中),因此,onfocus和onblur屬性未初始化。 您必須將腳本放在文檔的末尾(在標記之前)。
    另外,您的腳本正在搜索其他文本(“關於您的全部”),而不是其中的當前文本(“傳記信息”)。 即使您在文檔的處插入javascript代碼,該代碼也將起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM