2012-03-02 53 views
1

我對html,javascript中'this'的範圍很陌生。this.submit()的作用域?

因此,在查看一些SO帖子後,我發現在'this'實體的'範圍'中可能存在細微的差異。

此處,我遇到了我的問題:(編輯:在我的崗位的所有代碼駐留在index.php文件)

<form enctype="multipart/form-data" 
     class="registerFormStyles" name="registerForm" 
     action="index.php" method="post"> 
<input type="text" value="Username"> 
<input type="text" value="Password"> 
<a href="#" name="newUserRegister" class="login-button-landing" 
      onclick="document.registerForm.submit();">Login</a> 
      <!-- onclick="this.submit();">Login</a> --> 
</form> 

此代碼導致頁面的上述形式的重裝就可以了 - - 證據是輸入的用戶名和密碼閃回 默認值=「用戶名」和值=「密碼」當我點擊'登錄'按鈕 - 'a'錨,由於其 CSS樣式,是一個按鈕,符合貫穿整個網站的UI準則 。

(難道我懷疑造型一個「提交」按鈕最好面對面的人 「將不JavaScript的突破」?是的,我做的。我必須選擇 這裏嗎?不使用標準型=「提交「是不是一種選擇,我必須用 工作)

雖然它在視覺上明顯,當 我輸入用戶名,密碼,然後單擊‘登錄’頁面被重新加載 - 我做 這個頂部在php部分中的文件:

var_dump($_POST); 

和POST陣列始終爲

所以我的問題是有關的「本」在我上面的代碼範圍:

onclick="this.submit();" 

是否「本」指的是形式還是以「一個」錨​​內我 我打電話「this.submit」?

請注意,我也試圖通過

onclick="document.registerForm.submit();" 

方式這給了相同的結果做形式的帖子 - 「用戶名」和「密碼」字段 回到它們的默認值,但POST數組是空的。

所有我需要做的是使上述形式的合適的崗位的 「一個」錨​​「登錄」被點擊的時候 - 我想用「this.submit()」應該 工作 - 但POST數組始終爲空。爲什麼?

回答

2

您缺少表單域的name屬性。

<input type="text" name="user" value="Username"> 
<input type="text" name="pass" value="Password"> 

編輯 另外,this指其中它被稱爲元素。在你的例子中,this將參考<a>標籤。

+0

以下是您已擁有+1的另一個+1。好吧,那就是我所懷疑的 - 除了document.formname的解決方法外,我的'this'不是指形式,而是'a'錨。submit(),我怎樣才能引用'this'來代表我的'a'錨內的'this'(如果有這種方式的話)? – wantTheBest 2012-03-02 16:58:23

+0

你目前的做法是正確的做法。爲了包含'this',你必須在'

'標籤中(爲了引用表單本身),你不能提交這個標籤。 – SenorAmor 2012-03-02 17:00:42