0

我有一个从数据库获取值的动态字段,我想检查其中一个字段值是否大于旧值。如果它做得更大,我必须发出警报并将字段值重置回''

我想在不使用的情况下这样做,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>

有人能帮我吗?

4

2 回答 2

0

试试这个循环所有输入并匹配你想要的类:

$("input").each(function (i) {
    if ($(this).prop("class") === "pnwrn") {
        $(this).val('');
    }
});
于 2014-09-25T04:06:16.760 回答
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>

您还可以将匹配的 ID 附加到<tr>, 或其他元素上,这样就可以轻松找到合适的元素。

不幸的是,对于像urai、和之类的名称harga,很难确定您到底想要做什么,因此只是模糊的提示。jumlahpnwrn

但是 - 如果您试图清除您正在检查的字段,那么您已经拥有它,因此无需进行查找。做吧clearInput(this)

于 2014-09-25T04:02:06.947 回答