2014-10-21 89 views
0

我按照六部分的教程結束:http://sixrevisions.com/tutorials/web-development-tutorials/psdhtml-conversion-elegant-and-simple-css3-web-layout/有人可以向我解釋這個HTML/Javascript部分嗎?

但是我遇到了一個問題。我主要是從反向工程的各種教程學習HTML/JavaScript,但我已經到了一段代碼,我一直在努力DAYS瞭解..這是我到目前爲止。

function clearText(field) 

聲明該函數,給它一個名稱爲「clearText」並指出它將是一個文本字段。

if (field.defaultValue == field.value) field.value = ''; 

如果文本字段的默認值等於「值」(字符串變量以後可以設置?)

的完整代碼

function clearText(field) 
    { 
    if (field.defaultValue == field.value) field.value = ''; 
    else if (field.value == '') field.value = field.defaultValue; 
    } 

是否有人可以打破這在一個16歲的人可以理解的方式?我確實得到了if語句的結構,但我並不完全明白這裏發生了什麼。

+1

作爲JavaScript的初學者,您必須牢記該語言是鬆散類型的。這意味着'函數clearText(field)'不會聲明一個名爲'clearText'的函數來接受文本字段作爲參數(相信參數'field'對參數類型有任何影響)。它意味着一個參數名稱爲'field',其值可以是任何東西(即'clearText(1)','clearText(「hello」)'和'clearText({key:'value'})'都是有效的)。 – 2014-10-21 22:29:33

+0

閱讀關於JavaScript的一些信息,我14歲,我可以保證,首先潛入頭部的複雜代碼只會讓你更加困惑。我試圖學習C++那樣..我仍然不明白C++代碼。 – DividedByZero 2014-10-21 22:32:56

回答

2

clearText是一個將字段作爲參數的函數。

field是具有兩個屬性的對象:defaultValue和value。

如果其defaultValue等於它的值,則將其值設置爲''。

如果其值爲'',則將其defaultValue放入其值中。

appearently field.value是html字段的實際值(它可以是密碼,文本輸入,select可能 - 不確定最新的但是)。我不確定defaultValue是否是HTML元素中的標準元素,或者是否由程序員事先填充(使用其他JavaScript代碼)。

0

如果您有測試對象,可能更容易想象發生了什麼。

var testFieldOne = {defaultValue: 'test', value: ''} 
var testFieldTwo = {defaultValue: 'test', value: 'test'} 

// 'value' is an empty string, the function will change it to 'test' 
clearText(testFieldOne); 
console.log(testFieldOne.value); // Prints 'test' 

// 'value' is the same as 'default', so it will be set to an empty string. 
clearText(testFieldTwo); 
console.log(testFieldTwo.value); // Prints '' 
0

您可以在輸入字段中顯示默認文本來引導用戶,該輸入字段的用途是什麼。 但您不想提交處理的默認文本。所以你看,如果當前的字段值是相同的你的文字。如果是這種情況,請清除輸入字段,以便您的數據處理知道沒有條目。

0

正如本教程中的默認值設置爲「搜索」。如果用戶關注或模糊了該字段,並且如果文本字段已爲空,則該函數將從默認值「搜索」中清空文本字段,它將再次顯示「搜索」。 ///通過我13 :-)

0

當你有一個文本(或輸入標籤)的東西的JavaScript自動完成一個是獲得什麼是它的內部,並將其存儲在路一個叫做價值的變量。所以,如果你有這樣一個文本:

<form name="form1"> 
<textarea name="textarea1"> 
This is a sentence inside of a textbox. 
</textarea> 
</form> 

,你可以在Javascript中獲取它的價值是這樣的:

document.form1.textarea1.value 

將返回:

"This is a sentence inside of a textbox." 

隨着中說, clearText函數接受字段作爲值,所以如果我們這樣稱呼它:

clearText(document.form1.textarea1) 

這意味着現在,clearText中的「field」變量現在等於document.form1.textarea1,並且可以用作說明同樣事物的簡短方法。這意味着,如果我們想找到什麼是文字區域裏面,我們現在可以這樣做:

field.value 

這將再次返回:

"This is a sentence inside of a textbox." 

所以,明文第一個if語句使用一個檢查textarea的當前值(這是文本框內的句子)是否等於其默認值。如果是,它會使textarea變空。如果相反,它會將textarea設置爲包含其默認文本。如果兩者都不適用,則沒有任何反應本質上,它在空白文本框或默認文本框之間來回切換。

順便說一句,我不認爲你是「逆向工程」的任何教程。 「逆向工程」將涉及從程序中獲取代碼,而您不應該從代碼中取回代碼。任何人都可以閱讀Javascript。

相關問題