2011-04-20 84 views
0

這是我的場景,我向用戶展示了一個測試表,我已經從數據庫中檢索了一個循環,併爲每個測試(表的一行)創建了一個表單。所以每個人都有一個提交按鈕來執行特定的測試。我的循環的動態檢查密碼

基礎知識:

while ($ts = mysql_fetch_assoc($test_info)) 
{ 
//PRESENT VALUES $ts['name'] in table within a unique form etc. 
} 

我所試圖做的,失敗是,在點擊一個特定的測試提交按鈕,運行JS函數檢查;如果測試有一個附加密碼,如果是,提交一個彈出窗體輸入密碼,並提交小表格檢查密碼是否正確,如果是提交原始測試表格。

我的問題是,我無法解析附加到該窗體的密碼值到我的JavaScript。

所以理想我想這樣做:

<input id='submit' type='button' onclick='JSfunction(test_password)' value='execute test' > 

所以我能以某種方式解析來自特定形式的價值對一個JavaScript函數,而無需實際提交表單。

我相信我知道如何在我的JSfunction中完成剩下的工作。

我希望有人能跟隨我可憐的解釋,並指出我在正確的方向。

非常感謝,

回答

0

當一個表單應該有一個與之關聯的密碼,添加以下內容:

<input type="hidden" name="has_password" value="yes" /> 
<input type="hidden" name="password" value="" /> 

然後,在您的支票被提交按鈕觸發(假設按鈕本身是this上下文):

if ($(this).parent().find(':input:hidden[name=has_password]').val() == 'yes') { 
    // pop password request 
    return false; 
} 

你需要一種方法來保存當前表單的背景下,我可以建議一些,如果你喜歡,但你CA然後將密碼填入隱藏字段中並按正常提交。順便說一句,你可能想考慮onSubmit而不是提交按鈕的onClick,因爲onSubmit會捕獲腳本嘗試執行提交。如果你這樣做,只需刪除上面的.parent()部分,因爲<form>元素應該是this上下文。

+0

我可以以類似的方式訪問表單的值嗎?所以當我驗證'has_password'是'是'時,我可以用表單中的測試名稱從我的數據庫中獲取實際密碼。如果這是有道理的:S – buymypies 2011-04-20 15:33:45

+0

我不確定你在說什麼。你的意思是你想在客戶端做比較嗎?這不是一個好主意。我假設你會彈出一個要求輸入密碼的通用shadowbox,然後填充隱藏的密碼字段,然後在相關表單上調用'submit()'方法。你到底想要做什麼? – Dereleased 2011-04-20 15:43:45