我有一个从数据库中获取值的动态字段,我想检查一个字段值,如果它与旧值相比更大。如果它更大,我必须提供警报并将字段值重置回''
我想在不使用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 } ?>
。这是我的代码
<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>
这是我的javascript:
{{1}}
有人可以帮助我吗?
答案 0 :(得分:0)
您不应该有多个具有相同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>
您还可以在<tr>
或其他元素上附加匹配的ID,这样就可以轻松找到合适的元素。
不幸的是,对于urai
,harga
,jumlah
和pnwrn
这样的名称,很难确定您究竟要做的是什么,因此只是模糊的提示。
但是 - 如果您正在尝试清除您正在检查的字段,那么您已经拥有它,因此不需要进行查找。只需clearInput(this)
。
答案 1 :(得分:0)
尝试使用循环遍历所有输入并匹配所需的类:
$("input").each(function (i) {
if ($(this).prop("class") === "pnwrn") {
$(this).val('');
}
});