2012-01-19 68 views
2

好的,我有一個表單,它有三個輸入框,目前它們是文本,但它們將被更改爲密碼。當按下提交按鈕時,我希望將表單數據發送到Ajax腳本。從HTML表單按鈕發送多個參數到javascript

我有這個只用一個參數工作的按鈕看起來是這樣的:

<input type="submit" name="submit" value="Submit" 
    onClick="return pass(this.form.oldPass.value;"> 

現在我已經嘗試添加了「this.form」部分的三倍,因爲這就是多少個參數的功能,將採取但它似乎並沒有做任何事情:

<input type="submit" name="submit" value="Submit" 
    onClick="return pass(this.form.oldPass.value, 
         this.form.newPass.value, 
         this.form.newPassCheck);"> 

這是正確的方式去傳遞形式的數據到腳本?有沒有其他的方法,或者我只是在這裏做錯了什麼?

感謝您的幫助,如果您需要更多的代碼,我會添加它。

+2

請出示'函數pass'不要的onclick一個提交按鈕的調用代碼。而是將它稱爲onsubmit的形式 - 並最好通過頭部腳本添加onload。如果您不需要提交表單,那麼您需要在onsubmit事件中返回false – mplungjan

+1

使用jQuery,您只需執行'$ .post(「test.php」,$(「#testform」)。serialize ());' – mplungjan

回答

3

試試這個。 (你需要jquery做到這一點。)

<form> 
old pass <input type="password" id="old_pass" /> 
new pass <input type="password" id="new_pass" /> 
new pass confirmation <input type="password" id="new_pass_confirm"/> 
</form> 
在.js文件

,這樣寫:

$(document).ready(function(){ 
    var old_pass = $('#old_pass').val(); 
    var new_pass = $('#new_pass').val(); 
    var new_pass_confirm = $('#new_pass_confirm').val(); 

    //then call your method with those vars as parameter 
    anyMethod(old_pass, new_pass, new_pass_confirm); 

}); 

//this is your function 
function anyMethod(old_pass, new_pass, new_pass_confirm) 
{ 
    //put your validation code or ajax call here... 
} 
1

我相信你應該添加一個onSubmit監聽器到你的窗體。有很好的js框架,像jquery那樣易於使用。這樣,您可以在提交表單時創建一個運行函數的偵聽器。在這個函數中,您可以將數據提取到json中,並將其粘貼到您的服務器上。

info about jquery

jquery ajax

how to extract form data

2

添加ID爲您的每一個輸入框,你可以在功能上得到的值,如:

 

function pass() { 
var old = document.getElementById("yourOldPassId").value; 
var new = document.getElementById("yourNewPassId").value; 
var newConfirm = document.getElementById("yourNewConfirmPassId").value; 
} 
 

你意味着什麼像這樣

2

給輸入一些ID並從那裏獲取數據。

是這樣的:

<input type bla bla id="whateverId0" /> 

對於每個輸入。

的提交應該有類似的onclick = 「whateverFunction()」

JS的應該是這樣的:

 function whateverFunction() 
    { 
      val0 = document.getElementById('whateverId0'); 
      // For all 3 values. 

      // Do whatever you want with them. 
    } 
相關問題