winzard Posted July 8, 2015 at 09:14 AM Report #585880 Posted July 8, 2015 at 09:14 AM Boas, Preciso de ajuda que ando aqui que só falta bater com a cabeça nas paredes e possivelmente até é algo simples 😛 Na minha página tenho a tabela como está abaixo, e pretendo que quando carregar no botão ele me diga os valores da linha que tenha a checkbox como checked. <table style="width:100%" class="table table-condensed table-hover" data-click-to-select="true"> <thead> <tr> <th data-field="select" data-checkbox="true"></th> <th data-field="planta" data-align="right">Planta</th> <th data-field="escala" data-align="center">Escala</th> <th data-field="layout" data-align="">Layout</th> </tr> </thead> <tbody> <tr> <td style="vertical-align: middle"><input type="checkbox" class="checkbox" /></td> <td style="vertical-align: middle" width="45%">Planta 1</td> <td width="30%"> <select class="form-control" id="scales"> <option value="2000">2000</option> <option value="50000">5000</option> <option value="20000">20000</option> </select> </td> <td width="30%"> <select class="form-control" id="layouts"> <option value="A4_Vertical">A4</option> <option value="A3_Vertical">A3</option> </select> </td> </tr> <tr> <td style="vertical-align: middle"><input type="checkbox" class="checkbox" /></td> <td style="vertical-align: middle" width="45%">Planta 2</td> <td width="30%"> <select class="form-control" id="scales"> <option value="2000">2000</option> <option value="50000">5000</option> <option value="20000">20000</option> </select> </td> <td width="30%"> <select class="form-control" id="layouts"> <option value="A4_Vertical">A4</option> <option value="A3_Vertical">A3</option> </select> </td> </tr> </tbody> </table> Até aqui tudo bem, usei a função abaixo e consigo obter isso, no entanto, o que me está a dar erro é a obter o valor selecionada no select, uma vez que como código abaixo para a escala é me dada a seguinte informação "2000 5000 20000" e o que pretendia era mostrar o valor que o utilizador selecionou, ou seja mostrar só por exemplo "5000".. $('td .checkbox').each(function () { if (this.checked) { var planta_check = this.parentNode.parentNode.getElementsByTagName("td")[1].textContent; var escala_check = this.parentNode.parentNode.getElementsByTagName("td")[2].textContent; var layout_check = this.parentNode.parentNode.getElementsByTagName("td")[3].textContent; } }); Help me please 😉 ;) 😉
HappyHippyHippo Posted July 8, 2015 at 09:37 AM Report #585882 Posted July 8, 2015 at 09:37 AM antes de mais, tem um erro grave de HTML, existem elementos que possuem o atributo id com valores iguais como o próprio nome do atributo indica (id proveniente de identification), não poderão existir elementos com id's iguais, e como tal, o teu código está errado segundo, para quem está a usar a biblioteca jquery, não percebo a razão de usar javascript standard para fazer a "navegação" dos elementos do DOM terceiro, se pretendes obter o valor do selectbox, porque é que estás a pedir o texto do elemento td ? o que pretendias seria algo como: $('table input:checked').each(function() { var row = $(this).parents('tr'); var scale = row.find('td:nth-child(2) select').val(); var layouts = row.find('td:nth-child(3) select').val(); alert('scale : ' + scale + ' | layout : ' + layout); }); IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
winzard Posted July 8, 2015 at 10:25 AM Author Report #585890 Posted July 8, 2015 at 10:25 AM Era isso mesmo, No código que está ai, os id repetem-se pois foi "inventado" e escapou-me essa, pois a tabela é construida com após um query à BD, e ai sim, cada os id dos select não são iguais. :-p
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now