2012-05-19 141 views
1

我試圖通過搜索網絡來找到這個問題的答案,但一直沒有任何運氣。大多數信息要複雜得多,我預計這個答案會是,而沒有人真正回答這個問題。瞭解JavaScript THIS關鍵字

在這種標籤:

<form method="post" action="process.php" name="processform" id="form1" onsubmit="return validate(this)"> 

是什麼 「這」 指什麼?

如果我打算用同一個對象的硬編碼引用替換「this」,我會用什麼替換它?

+2

'this'指的是被調用的元素的DOM對象,即表單對象。這是'這個'形式。 –

+0

這解釋了它:http://www.quirksmode.org/js/this.html(你也應該閱讀其他文章,它們提供了一個非常好的事件處理解釋)。 –

回答

2

this將引用正在提交的表單節點。您可以用document.getElementById('form1')替換參考。

1

「onsubmit」屬性中的this指的是表單本身;當validate函數被調用時,它的第一個參數是表單的DOM元素。

例如,考慮這個可能實現的validate

function validate(form) 
{ 
    alert(form.action); // will display "process.php" 
} 

有關使用this的HTML內(而不是一個固定的名稱或ID),這樣的好處是,你不必通過ID或名稱參考表格。

+0

是的,但是'form'呢?它會提醒什麼,或者'console.log()'? –

+0

@JaredFarrish'form'不會提醒任何事..我不確定你在問什麼 –

+0

[Nothing](http://jsfiddle.net/UhB9W/)?是的,['console.log(form)'](http://jsfiddle.net/UhB9W/1/)更有用。 –