我有一个从数据库中获取值的动态字段,我想检查其中一个字段值是否大于旧值。如果它做得更大,我必须发出警报并将字段值重置回''
我想在不使用document.GetElementById
的情况下完成这项工作,因为foreach循环了字段,我正在尝试使用document.GetElementByName
,但在哪里都没有。这是我的代码
<?php foreach ($items->result_array() as $row){ ?>
<tr>
<td><p><?php echo $row['nmbr']; ?> </p>
<p><?php echo $row['urai']; ?><p> </td>
<td><?php echo $row['jml']?> </td>
<td><div class="oldprice"><?php echo $row['oldprice']?></div></td>
<td><input id="pnwrn" class="pnwrn" type="text" name="pnwrn[]" value="" data-harga="<?php echo $row['jml']?>" data-jumlah="<?php echo $row['oldprice']?>"/></td>
<td><div class="output"></div></td>
</tr>
<?php } ?>
这是我的javascript:
<script type="text/javascript">
$('.pnwrn').on('change', function () {
var twrn = $(this).val();
var price = parseInt($(this).data('harga'));
var jmlh = parseInt($(this).data('jumlah'));
if (twrn <= jmlh){
$(this).parents('tr').find('.output').html(twrn*price);
}
else {
alert("Price can not be greater from old price");
cleartext();
}
});
function clearInputs() {
document.getElementByName("pnwrn").value = "";
}
</script>
有人能帮我吗?
不应该有多个元素具有相同的id
。相反,试试这个:
<td><input id="pnwrn<?php echo $row['some_id_field_that_you_have']; ?>" class="pnwrn" type="text" name="pnwrn[<?php echo $row['some_id_field_that_you_have']; ?>]" value="" data-harga="<?php echo $row['jml']?>" data-jumlah="<?php echo $row['oldprice']?>"/></td>
您还可以将匹配的ID附加到<tr>
上,或附加到其他元素上,这使得查找合适的元素变得很简单。
不幸的是,对于urai
、harga
、jumlah
和pnwrn
这样的名称,很难准确地指出你想要做什么,因此只是模糊的提示。
但是,如果你试图清除你正在检查的字段,你已经有了,所以不需要进行查找。只要做clearInput(this)
。
尝试循环所有输入并匹配所需的类:
$("input").each(function (i) {
if ($(this).prop("class") === "pnwrn") {
$(this).val('');
}
});