标签选择器不以动态形式出现

时间:2012-12-27 15:48:59

标签: javascript jquery html dynamic-forms

我想在选择器.hapus-baris-makanan上显示一个按钮,当nama-makanan的数组形式的数量超过一个,然后选择器.hapus-baris-makanan中的一个按钮会出现,但是如果数组形式nama-makanan blank / null的数量,选择器.hapus-baris-makanan中的按钮将被隐藏。我做了以下编码

HTML

 <form id="formpembayaran" method="post" action="<?php echo base_url('pembayaran/simpanitempembayaran'); ?>">

    <table class="table table-striped area-table tabel-form-makanan">
        <thead>
            <tr>
                <th>Nama Makanan</th>
                <th>Jenis Makanan</th>
                <th>Harga Makanan</th>                            
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>
                    <input type="text" name="nama-makanan[]" style="height: 30px; width: 280px;" class="nama-makanan" placeholder="ketikkan nama makanan"/>
                    <input type="hidden" name="id-makanan[]" class="id-makanan"/>
                </td>
                <td>
                    <input type="text" readonly name="nama-jenis-makanan[]" style="height: 30px; width: 280px;" class="nama-jenis-makanan" placeholder="nama jenis makanan"/>
                </td>
                <td>
                    <input type="text" readonly name="harga-makanan[]" style="height: 30px; width: 280px; text-align: right;" class="harga-makanan" placeholder="harga satuan makanan"/>
                </td>
                <td>
                    <a class="btn hapus-baris-makanan"><i class="icon-remove"></i></a>
                </td>
            </tr>
        </tbody>
    </table>

的javascript:

$(document).ready(function(){

    var myForm = document.forms.formpembayaran;
    var idMakanan = myForm.elements['nama-makanan[]'];

    if (idMakanan.length == null){
        $('.hapus-baris-makanan').hide();
    } else {
        $('.hapus-baris-makanan').show();
    }

    $('.tombol-tambah-makanan').on('click', function(){
        var tr = '<tr>\n\
                    <td><input type="text" name="nama-makanan[]" style="height: 30px; width: 280px;" class="nama-makanan" placeholder="ketikkan nama makanan"/><input type="hidden" name="id-makanan[]" class="id-makanan"/></td>\n\
                    <td><input type="text" readonly name="nama-jenis-makanan[]" style="height: 30px; width: 280px;" class="nama-jenis-makanan" placeholder="nama jenis makanan"/></td>\n\
                    <td><input type="text" readonly name="harga-makanan[]" style="height: 30px; width: 280px; text-align: right;" class="harga-makanan" placeholder="harga satuan makanan"/></td>\n\
                    <td><a class="btn hapus-baris-makanan"><i class="icon-remove"></i></a></td>\n\
                </tr>';
        $("table.tabel-form-makanan tbody").append(tr);                  
    });

    $('.tombol-reset-makanan').on('click', function(){
        $('table.tabel-form-makanan tbody tr:not(:first)').remove();
    });

    $('.tabel-form-makanan').on( 'click', '.hapus-baris-makanan', function(){
        $(this).closest('tr').remove()
    });
  });

我不知道故障的位置。请帮帮我。谢谢

1 个答案:

答案 0 :(得分:0)

这样:

var myForm = document.forms.formpembayaran;
var idMakanan = myForm.elements['nama-makanan[]'];

if (idMakanan.length == null){
    $('.hapus-baris-makanan').hide();
} else {
    $('.hapus-baris-makanan').show();
}

应该是:

if($('.nama-makanan').length){
    $('.hapus-baris-makanan').show();
} else {
    $('.hapus-baris-makanan').hide();
}

.hapus-baris-makanan应该以样式display:none

开头