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 将它们全部收集为散列,使用 Survey[question] 作为键,并使用 Survey[answer] 参数的数组作为数组所述键的值。
最佳答案
如果您发布表单,Sinatra 会自动从变量 params
中获取帖子中的所有值。
尝试一下,您应该会看到发生了什么:
get '/surveys' do
puts params.inspect
end
关于javascript - 复杂的 sinatra 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27197950/