假设我有一个属性:year_of_birth 例如和另一个字段:age(只读),我填写 year_of_birth。我在模型中创建了一个方法来计算年龄,年龄如何在视图中填充?
问问题
39 次
1 回答
0
这是我做的一个简短的代码片段,应该让你走上正确的道路(使用javascript,但没有评论中提到的ruby on rails)。
document.getElementById("date").value
获取 id 为“date”的元素的值。您只需将日期(我假设它只是出生年份)减去到 2020 年。
Date of birth: <input type="int" id="date">
Age: <input type="int" id="age">
<p>Click the button to get the age!</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
document.getElementById("age").value = 2020 - document.getElementById("date").value;
}
</script>
这只是一个基本脚本,几个月后将无法使用,因为我们将在 2021 年推出,因此我将让您找到如何在 javascript 中获取当前年份。它也不完全准确,因为它没有考虑出生的月份/日期,但你明白了!
我希望这对您有所帮助,并告诉我是否有不清楚的地方或没有按照您想要的方式工作。
编辑:哦,我忘了提,但是这个代码在你点击按钮后执行,这可能不是真正的用户友好(取决于你在做什么,真的!)。如果您想让函数在填充字段后立即执行,则需要进行少量修改。
如果您想在出生年份更改后立即显示年龄,可以将onchange
事件添加到输入中,如下所示:
Date of birth: <input type="int" id="date" onchange=myFunction()>
Age: <input type="int" id="age">
<p>Fill the first area with a year to get the age!</p>
<script>
function myFunction() {
document.getElementById("age").value = 2020 - document.getElementById("date").value;
}
</script>
onchange
只要您按下回车键或在文本区域外单击,该事件就会触发。
于 2020-10-26T15:12:53.800 回答