2014-10-21 86 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。

相关问题