我正在尝试在加载页面时仅更改一些输入字段的值。例如,submit_date_year应该是当前年份,所以现在是2017年。
我的HTML
<template name="trip_html">
<table class="table table-striped table-condensed table-hover rsk-tbl vScrollTHead">
<tr>
<td><input class="form-control input-lg" name="submit_date_day" type="text" placeholder="Day"/> </td>
<td><input class="form-control input-lg" name="submit_date_month" type="text" placeholder="Month"/> </td>
<td><input class="form-control input-lg" name="submit_date_year" type="text" placeholder="Year"/> </td>
</tr>
</table>
</template>
我的JS
页面加载功能
Template.trip_html.rendered = function(event, template) {
event.target.submit_date_year.value = 'test'; // DOES NOT WORK
console.log('Template onLoad');
};
但是,由于某些原因,我无法在加载功能中使用event.target.submit_date_year ... 但是,一旦我点击“提交”按钮
,它就会在事件中起作用Template.trip_html.events({
"submit .add-trip": function(event){
event.preventDefault();
var day = event.target.submit_date_day.value;
var month = event.target.submit_date_month.value;
var year = event.target.submit_date_year.value;
var car = event.target.submit_car.value;
var b = event.target.submit_b.value;
var a = event.target.submit_a.value;
var dist = event.target.submit_dist.value;
if(empty(day) || empty(month) || empty(year) || empty(car) || empty(b) || empty(a) || empty(dist)){
return false;
}
if(!isNumeric(day) || !isNumeric(month) || !isNumeric(year) || !isNumeric(dist)){
return false;
}
if(day.startsWith("0"))
day = day.replace("0", "");
if(month.startsWith("0"))
month = month.replace("0", "");
if(year.startsWith("0"))
year = year.replace("0", "");
console.log(day, month, year, car, a, b, dist);
Meteor.call('addTrip', day, month, year, car, a, b, dist);
event.target.submit_a.value = event.target.submit_b.value;
event.target.submit_b.value = '';
event.target.submit_dist.value = '';
},
请帮忙!
答案 0 :(得分:0)
它不起作用,因为您在onRendered Callback中传递了一个事件参数。因此,您无法通过event.target
选择DOM元素。
尝试在标记中为元素指定某个类并替换行event.target.submit_date_year.value = 'test'; // DOES NOT WORK
有类似的东西:
$('.year-input').val() = 'test';
html行:
<td><input class="form-control input-lg year-input" name="submit_date_year" type="text" placeholder="Year"/></td>
您现在可以从渲染的回调中删除'event'参数。 希望,我可以帮忙。
答案 1 :(得分:0)
它无法正常工作的原因是您没有正确使用setlocal
set ASPNETCORE_ENVIRONMENT=development
yourbinary.exe
endlocal
功能。您还尝试使用不存在的事件对象来访问输入,因为没有事件。
尝试:
onRendered
修改强>
如果您不需要动态数据,也可以使用HTML来实现此目的。
Template.trip_html.onRendered(function () {
$('input[name="submit_date_year"]').val('2017');
});