我在值来自数据库的表单内有一个PHP foreach循环。在此,输入ID随着循环元素的增加而增加。
<form class="form-horizontal">
<?php
$count = 0;
foreach ($value as $row) {
$count += 1;
echo
'<div class="row">
<div class="form-group">
<label id="durationLabel' . $count . '">Duration (days)</label>
<input type="number" name="duration_days" value="' . $row['duration_days'] . ' day" class="form-control input-sm" id="durationInput' . $count . '" placeholder="Days" onchange="durationInputChange(this.value,'.$count.')">
</div>
</div>';
}
?>
</form>
现在,我的问题是,如何检测输入值是否发生更改(基于ID)并获取该值,并使用jQuery在相应的Label中显示出来。我当前使用的JavaScript代码对值更改没有任何作用:
function durationInputChange(a,i) {
var d = document.getElementById("durationInput"+i).value;
alert(d);
}
change
如果您想要更多更快的反馈,就不能使用。该change
模糊输入元件之后执行是Event。您可以添加keyup
,keydown
和更喜欢paste
。此外,您不需要该onchange
属性-内联绑定和事件侦听器为no。
$(function(){
$('input[name="input-1"]').on('keyup change paste keydown', function(){
var $this = $(this);
console.log($this.attr('id')); // ID; for referencing
console.log($this.val()); // value of this input
});
})
input {
display:block;
margin-bottom:10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<input name="input-1" value="" id="input-1">
<input name="input-1" value="" id="input-2">
<input name="input-1" value="" id="input-3">
<input name="input-1" value="" id="input-4">
<input name="input-1" value="" id="input-5">
<input name="input-1" value="" id="input-6">
<input name="input-1" value="" id="input-7">
<input name="input-1" value="" id="input-8">
<input name="input-1" value="" id="input-9">
<input name="input-1" value="" id="input-10">
<input name="input-1" value="" id="input-11">
<input name="input-1" value="" id="input-12">
<input name="input-1" value="" id="input-13">
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句