2014-02-27 89 views
0

這裏是我的形式:http://jsfiddle.net/sxGtM/4743/ ...當您提交這份表格,我需要這樣的從形式創建JSON

data = { 
     'voted_questions': [question.pk, question.pk, question.pk, question.pk], 
     'answers': [ 
     { 
     'question': question.pk, 
     'option': option.pk, 
     }, 
     { 
     'question': question.pk, 
     'option': option.pk, 
     }, 
     ] 
    } 

question.pk和option.pk創建JSON是其識別每個問題和選項編號(它是ID)。你能幫助我如何創建這個JSON?

+0

可能重複(http://stackoverflow.com/questions/11661187/form-serialize-javascript-no-framework) –

回答

0

我不是100%確定爲什麼你想要一個回答問題列表,當你也有一個答案列表(其中包括問題ID)。這就是你所要求的,所以你要走了。

HTML

<h2>Form</h2> 
<form action="" method="post"> 
Which city is in Great Britain?<br/> 
<input type="hidden" name="first" value="1"/> 
London:<input type="radio" name="first" data-questionid="1" value="11"/><br/> 
New York:<input type="radio" name="first" data-questionid="1" value="12"/><br/> 
Which city is in USA?<br/> 
<input type="hidden" name="second" value="2"/> 
Washington:<input type="radio" name="second" data-questionid="2" value="13"/><br/> 
Tokio:<input type="radio" name="second" data-questionid="2" value="14"/><br/> 
<p><input type="submit" /></p> 
</form> 
<h2>JSON</h2> 
<pre id="result"> 
</pre> 

的Javascript

$(function() { 
    $('form').submit(function() { 
     var voted_questions = []; 
     var answers = []; 

     $('input[type="radio"]:checked').each(function(){ 
      voted_questions.push($(this).data('questionid')); 
      answers.push({'question':$(this).data('questionid'), 'options':this.value}); 
     }); 

     var data = { 
      'voted_questions': voted_questions, 
      'answers': answers 
     }; 

     $('#result').text(JSON.stringify(data)); 
     return false; 
    }); 


}); 

jsfiddle

的[形式序列的JavaScript(沒有框架)]
+0

謝謝你,我t工作...我在這裏添加一些東西:http://jsfiddle.net/B9r22/2/還有類型:複選框,文本和隱藏...你能爲他們寫代碼嗎?我想添加三個隱藏的輸入:'voter':{'ip_address':abcd,'voting_started':voting_started,'voting_ended':voting_ended,}, – user3357400

+0

@ user3357400如果我提供的代碼符合您的原始請求,請將此標記爲正確/被接受的答案。至於您的額外請求,SO不是要求人們爲您編寫代碼的地方。我提供的內容應該足以讓您瞭解如何將其應用於其他輸入。至少,你需要嘗試。如果你遇到某些特定的問題,那麼就開始一個新的問題,向你展示代碼和任何相關的錯誤,然後有人會指引你朝着正確的方向前進。但不要說「我需要XYZ,給我這樣的代碼」。 –

+0

@ user1505169我在這裏編寫了一些新的東西:http://www.jsfiddle.net/B9r22/5/你可以將它嵌入嗎?如何從選民中刪除[]?我想要這樣的json:'voter':{'ip_address':a.b.c.d,'voting_started':voting_started,'voting_ended':voting_ended,}感謝您的幫助 – user3357400