Javascript Meteor在页面加载时更改表单值
我试图在加载页面时只更改一些输入字段的值一次。例如,提交日期和年份应该是当前年份,所以现在是2017年 我的HTMLJavascript Meteor在页面加载时更改表单值,javascript,jquery,meteor,Javascript,Jquery,Meteor,我试图在加载页面时只更改一些输入字段的值一次。例如,提交日期和年份应该是当前年份,所以现在是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
<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>
但是,由于某些原因,我无法在该加载函数中使用event.target.submit\u date\u 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 = '';
},
救命啊 它不起作用,因为您正在onRendered回调中传递事件参数。因此,您不能通过
event.target
选择DOM元素
尝试在标记中为元素指定一个特定的类,并替换行event.target.submit\u date\u year.value='test';/不起作用
比如:
$('.year-input').val() = 'test';
html行:
<td><input class="form-control input-lg year-input" name="submit_date_year" type="text" placeholder="Year"/></td>
现在可以从呈现回调中删除“event”参数。
希望我能帮忙。它不起作用的原因是您没有正确使用
onRendered
函数。您还试图使用一个不存在的事件对象访问输入,因为没有事件
尝试:
编辑
如果不需要数据是动态的,也可以使用HTML来实现这一点
<input class="form-control input-lg" name="submit_date_year" type="text" placeholder="Year" value="2017"/>
jquery代码不起作用,结果给了我一个意外的错误标记。我甚至尝试了以下jquery,这给了我相同的错误:var year=$(“.year input”,“.add trip”).value=“test2”;尝试使用这个document.getElementsByClassName('year-input')代码>而不是jquery行。您还可以将其放入变量中,并将其输出到控制台以进行调试。例如:let el=document.getElementsByClassName('year-input')代码>然后console.log(el)代码>如果您选择了元素,它应该会以某种方式工作。使用var val=document.getElementsByClassName('year-input');控制台日志(val);我确实找到了我的元素,但是val.value=“TEST”;不执行任何操作,ClassName('year-input')也不执行任何操作。value=“TEST”;该死的BlazeJS(MeteorJS)我不知道这是否有帮助,但我认识到我调用函数的方式不同:Template.myTemplateName.onRendered(function(){//myfunction;})代码>给定第二行中的错误:(.client/main.js:73:2:赋值表达式的左侧无效(73:2),注释为:$('input[name=“submit_date_year”]”)。val()='2017'删除错误。@AleksD很抱歉我太笨了,在代码中犯了一个错误。现在检查一下,然后再试一次。非常抱歉,但是..仍然不起作用..如果我添加console.log(“加载”)在该函数中,我确实得到了输出,但是..值仍然是空的,很遗憾:|好的,让我们通过尝试将所有输入锁定一秒钟来测试一下。将jQuery更改为:$(“input”).val(“test”);
。如果它起作用,您应该在所有inputs@AleksD顺便说一句,您也可以使用HTML来实现这一点
Template.trip_html.onRendered(function () {
$('input[name="submit_date_year"]').val('2017');
});
<input class="form-control input-lg" name="submit_date_year" type="text" placeholder="Year" value="2017"/>