我有一个标签,我试图在变量中获取数据。当我尝试使用它时,我收到错误,因为类型和值是undefined
。
这是我的HTML代码:
<div class="input-group date" input-type="date" id="startDate">
@Html.EditorFor(model => model.startDate, new { htmlAttributes = new { @class = "form-control" } })
document.getElementById('description').onchange = function () {
var startDate = document.getElementById('startDate').value;
var endDate = document.getElementById('endDate').value;
var startDate_ms = startDate.getTime();
var endDate_ms = endDate.getTime();
var oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
var diff = Math.round(Math.abs((endDate_ms - startDate_ms) / (oneDay)));
document.getElementById('description').value = diff.value;
}
答案 0 :(得分:0)
假设您的页面上有一个带有id ='description'的标签,那么您无法在标签上使用onchange事件。看看the documentation
当用户提交对元素值的更改时,会对input,select和textarea元素触发change事件。与输入事件不同,对于元素值的每次更改,都不一定会触发change事件。
即使您可以使用输入替换标签,您也无法使用更改事件,因为更改必须由用户而不是您的代码进行。
当用户提交对元素值的更改时。
所以,我建议你使用JQuery来查看trigger() 这是JSFiddle
<button>Change Label</button>
<label id="description"> some value here </label>
$("button").on('click',function(){
$("#description").text("Value changed").trigger("lblChanged");
});
$("#description").on('lblChanged', function(){
console.log($("#description").text());
// Write your code here
});
如果您使用的是vanilla Javascript,请查看here