繁体   English   中英

有人可以向我解释这个HTML / Javascript部分吗?

[英]Can someone explain to me this HTML / Javascript section?

我在六个修订版中遵循了本教程: http ://sixrevisions.com/tutorials/web-development-tutorials/psdhtml-conversion-elegant-and-simple-css3-web-layout/

但是我遇到了一个问题。 我主要是从反向工程的各种教程中学习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语句的结构,但我不完全了解这里发生的情况。

clearText是一个将字段作为参数的函数。

字段是具有两个属性的对象:defaultValue和value。

如果其defaultValue等于其值,则将其值设置为“”。

如果其值为“”,则将其defaultValue放入其值。

显然field.value是html字段的实际值(它可以是密码,文本输入,选择(可能不确定最新信息))。 我不确定defaultValue是否是HTML元素中的标准值,还是由程序员预先填充(带有其他JavaScript代码)。

如果您有测试对象,则可能更容易可视化正在发生的事情。

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 ''

您可以在输入字段中显示默认文本以指导用户该输入字段的用途。 但是,您不想提交默认文本进行处理。 因此,您看一下,如果当前字段值与您的默认文本相同。 如果是这种情况,请清除输入字段,以便您的数据处理知道没有条目。

与教程中一样,默认值设置为“搜索”。 如果用户聚焦或模糊该字段,则该函数将从其默认值“搜索”中清空该文本字段;如果该文本字段已为空,则它将再次显示“搜索”。 ///顺便说一句我13岁:-)

当您拥有文本区域(或输入标签)时,Javascript自动执行的操作之一就是获取其中的内容,并将其存储在一个名为value的变量中。 因此,如果您有这样的文本区域:

<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函数接受field作为值,因此如果我们这样调用它:

clearText(document.form1.textarea1)

这意味着现在,clearText内的“字段”变量现在等于document.form1.textarea1,可以用作表示同一件事的一种简短方法。 这意味着,如果我们要查找文本区域内的内容,则可以执行以下操作:

field.value

它将再次返回:

"This is a sentence inside of a textbox."

因此,clearText首先使用if语句检查textarea的当前值(这是文本框内的句子。)是否等于其默认值。 如果是,它将使文本区域为空。 如果相反,它将设置textarea以包含其默认文本。 如果都不适用,则什么也不会发生。 本质上,它在文本框为空或默认之间来回切换。

顺便说一句,我认为您根本不会对任何教程进行“逆向工程”。 “逆向工程”将涉及从程序中获取代码,而您不应该从该程序中获取代码。 任何人都可以阅读Javascript。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM