2017-08-17 79 views
1

我試圖從形式獲取值,並將它添加到一個表單,然後通過該值作爲參數附加價值,形成

腳本

$(document).ready(function() { 
$('#buttonClick').on('click', 'button',function firstCall(){ 

var form = new FormData(); 
form.append("name", "test"); 
form.append("phone", "2245201905"); 
form.append("url", "this_url"); 
var settings = { 
    "async": true, 
    "crossDomain": true, 
    "url": "url_path", 
    "method": "POST", 
    "processData": false, 
    "contentType": false, 
    "mimeType": "multipart/form-data", 
    "data": form 
} 

$.ajax(settings).done(function (response) { 
    console.log(response); 
});}); 
}); 

HTML

<form method="post" id="formSample"> 
<div class="form-group"> 
     <label for="name">Name</label> 
     <input type="text" id="name" placeholder="Fullname"> 
</div> 
<div class="form-group"> 
     <label for="phone">phone</label> 
     <input type="number" name="phone" placeholder="number"> 
</div> 
<div id="buttonClick"> 
<button >Submit</button></div> 

在我的腳本中,我已經硬編碼的名稱,電話和網址的價值,它的工作是我無法appen d從形式價值.. 所以我找

form.append("name", "(document.getElementById('name').value"); 

而且按鈕點擊我不能來傳遞數據,因爲我已經把警報,但我不我的代碼輸入功能

注:我還沒有在url部分工作

回答

0

創建FORMDATA從實際HTML看重你可以通過這種形式,形成數據參數

<form id="myForm"> 
    <input type="text" id="name" name="name" placeholder="Fullname"> 
    <input type="text" id="phone" name="phone" placeholder="Phone"> 
</form> 
<script> 
var myform = document.getElementById('myForm'); 
var form = FormData(myform); 
// form will have name and phone 
form.append("url", window.location.href); 

$.ajax(settings).done(function (response) { 
    if (response.success) { 
     // Only do something if the response data has success key. 
    } 
});}); 
</script> 
+0

是的感謝..這個工作.. 我也有另外一個疑問,當我提出我想只有當響應是真實的顯示此API響應..任何指導? – raulxbox

+0

@ drivesxbox無需感謝我。請儘快答覆並接受:D –

+0

我做到了,但他們說你可以在2分鐘後註冊答案..我會這麼做的。也如何通過當前頁面的url形式 – raulxbox

2
form.append("name", "(document.getElementById('name').value"); 

你在這裏追加一個字符串。只是刪除了「

form.append("name", document.getElementById('name').value); 

而且你可能想仔細看看,在匿名functionsdata types在javascript

0

其實你可以做要由只得到整個窗體並將它傳遞給FormData constructor簡單。你應該爲你的輸入設置名字雖然

function firstCall(e) { 
 
     e.preventDefault(); 
 

 
     var htmlForm = document.getElementById('formSample'); 
 
     var form = new FormData(htmlForm); 
 
     form.append("url", "this_url"); 
 
     
 
     // perform the ajax request 
 
     form.forEach((e, i) => { console.log(i, e); }); 
 
} 
 

 
$(document).ready(function() { 
 
    // You can use named function if you need to reuse it elsewhere 
 
    $('#buttonClick').on('click', 'button', firstCall); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form method="post" id="formSample"> 
 
<div class="form-group"> 
 
     <label for="name">Name</label> 
 
     <input type="text" name="name" id="name" placeholder="Fullname"> 
 
</div> 
 
<div class="form-group"> 
 
     <label for="phone">phone</label> 
 
     <input type="number" id="phone" name="phone" placeholder="number"> 
 
</div> 
 
<div id="buttonClick"> 
 
<button >Submit</button></div>

+1

是的,這真的很簡單..但你在哪裏做Ajax調用?而不是console.log的權利? – raulxbox

+0

你可以保留你所做的部分 – smarber

+0

這是什麼意思//在這裏不要使用命名函數 – raulxbox