Javascript模板
<script type="text/x-jsrender" id="questionTmpl">
<li class="question">
<input type="text" name="survey[question]" />
<button class="add_answer">Add Answer</button>
<ul></ul>
</li>
</script>
<script type="text/x-jsrender" id="answerTmpl">
<li class="answer">
<input type="text" name="survey[answer]" />
</li>
</script>
Jquery的
$(document).ready(function () {
$("#add_question").click(function(e) {
e.preventDefault();
$("#questionForm ol").append($.templates("#questionTmpl").render())
});
$("#questionForm").on('click', '.add_answer', function(e) {
e.preventDefault();
console.log()
$(this).parent().find("ul").append($.templates("#answerTmpl").render())
});
});
ERB
<div class="container">
<br>
<form action="/surveys" method="post" id="questionForm">
<input type="text" name="title" placeholder="survey name">
<button id="add_question"> Add a question </button>
<ol></ol>
<input type="submit" value="create" id="submit_form">
</form>
</div>
我正在sinatra做一个调查申请。我目前设置的方式是使用jsrender,渲染模板来添加问题和添加答案。我的问题是关于javascript模板中输入文本字段的名称。基本上我想知道是否有办法设置参数名称,以便sinatra将它们全部作为哈希收集,使用调查[问题]作为关键字,并将调查[答案]参数数组作为数组所述密钥的值。
答案 0 :(得分:1)
如果您发布表单,那么Sinatra会自动从变量params
中获取帖子中的所有值。
试试这个,你应该看看发生了什么:
get '/surveys' do
puts params.inspect
end