清除javascript警报后的输入字段值


Clear input field value after javascript alert

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

我想在不使用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>上,或附加到其他元素上,这使得查找合适的元素变得很简单。

不幸的是,对于uraihargajumlahpnwrn这样的名称,很难准确地指出你想要做什么,因此只是模糊的提示。

但是,如果你试图清除你正在检查的字段,你已经有了,所以不需要进行查找。只要做clearInput(this)

尝试循环所有输入并匹配所需的类:

$("input").each(function (i) {
    if ($(this).prop("class") === "pnwrn") {
        $(this).val('');
    }
});