javascript警报后清除输入字段值

时间:2014-09-25 03:59:12

标签: javascript php jquery html getelementsbyname

我有一个从数据库中获取值的动态字段,我想检查一个字段值,如果它与旧值相比更大。如果它更大,我必须提供警报并将字段值重置回''

我想在不使用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}}

有人可以帮助我吗?

2 个答案:

答案 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,这样就可以轻松找到合适的元素。

不幸的是,对于uraihargajumlahpnwrn这样的名称,很难确定您究竟要做的是什么,因此只是模糊的提示。

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

答案 1 :(得分:0)

尝试使用循环遍历所有输入并匹配所需的类:

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