Jump to content

Recommended Posts

Posted

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 😉 ;) 😉

Posted

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
Posted

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.