[英]How to detect a change in any <td> of table, using javascript?
我有一个表格,其<td>
值根据形式输入的不同而变化,我正在使用Tangle来创建反应式文档。 是否可以检测<td>
的值是否变为负数? 如果是这样,则必须将其颜色更改为红色!
Javascript或html标签本身可以解决此问题吗?
请帮忙!
我的更改将在profitLossIn1,profitLossIn2,profitLossIn3上。
这是我的html:
<table>
<tr>
<th>Name</th>
<th>Cost</th>
<th>Revenue</th>
<th>Result Profit/Loss</th>
</tr>
<tr>
<td><input id='NameInn1' type='text' NAME="NameInn1"></td>
<td><span class="TKNumberField" data-var="CostIn1"></span></td>
<td><b data-var="revenueIn1"> Cost</b></td>
<td><b data-var="profitLossIn1"> dollars</b></td>
</tr>
<tr>
<td><input id='NameInn2' type='text' NAME="NameInn2"></td>
<td><span class="TKNumberField" data-var="CostIn2"></span></td>
<td><b data-var="revenueIn2"> Cost</b></td>
<td><b data-var="profitLossIn2"> dollars</b></td>
</tr>
<tr>
<td><input id='NameInn3' type='text' NAME="NameInn3"></td>
<td><span class="TKNumberField" data-var="CostIn3"></span></td>
<td><b data-var="revenueIn3"> Cost</b></td>
<td><b data-var="profitLossIn3"> dollars</b></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td><b data-var="totalRevenueIn"> dollars</b></td>
</tr>
</table>
我正在尝试:
var inputs = document.getElementById("profitLossOut1");
console.log(inputs.value);
inputs.onchange = function () {
console.log("Checking IF condition");
if ((parseInt(this.value)).match("-") == true) this.parentNode.style.background = "red";
};
也许这会有所帮助: http : //jsfiddle.net/tz7WB/
JQUERY代码
$(":input").on("change", function () {
if (parseInt($(this).val()) < 0) $(this).closest("td").css("background", "red");
})
尝试在输入中键入任何负数
使用纯js: http : //jsfiddle.net/tz7WB/1/
JS代码
var inputs = document.getElementsByTagName("input");
for (var x = 0; x < inputs.length; x++) {
inputs[x].onchange = function () {
if (parseInt(this.value) < 0) this.parentNode.style.background = "red";
};
}
假设我正确理解了您的问题,那么您不想检查输入的负值,而是想检查缠结生成的文本值的负值。
该代码应该更多地是您要查找的代码,并且只要data-var
元素的文本内容以数字开头,它就可以工作。 如果不是,则需要改进数字解析逻辑:
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("input").change(function(e) {
var $target = $(e.target);
var checkNeg = function(c) {
for(var i=0,$ci; i<c.length; i++) {
$ci = $(c[i]);
if(parseInt($ci.text()) < 0) $ci.css("color", "red");
else $ci.css("color", "black");
}
};
checkNeg($target.parents("table").find("[data-var]"));
});
});
</script>
考虑针对您的方案使用kickout.js,您可以使用它根据基础数据轻松设置UI元素的格式。 看一下示例: http : //knockoutjs.com/examples/
为每个输入框添加jquery更改事件。 下面是示例代码
$("#NameInn1").change(function(){
var input = $("#NameInn1").val();
if(input<10){
$("#NameInn1").css("background-color","red");
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.