ES
TMultiField com muitos campos
Fechado
Olá Pessoal!
Achei o TMultiField formidável, porém precisei utilizar vários campos e o resultado não ficou nada agradável.
Por isso surgiu a necessidade de ter controle dos elementos dessa classe e para não alterar a classe do framework eu criei uma outra classe adaptando o que já estava ótimo na original.
Além disso eu precisava controlar o posicionamento do texto desses campos.
Estou colocando, em anexo, uma imagem que mostra o uso da classe original e o uso da classe adaptada e em seguida postarei os códigos utilizados.
Caso tenham idéias de melhorias favor postar aqui para que todos tenham acesso.
abs.
Eliezer
Achei o TMultiField formidável, porém precisei utilizar vários campos e o resultado não ficou nada agradável.
Por isso surgiu a necessidade de ter controle dos elementos dessa classe e para não alterar a classe do framework eu criei uma outra classe adaptando o que já estava ótimo na original.
Além disso eu precisava controlar o posicionamento do texto desses campos.
Estou colocando, em anexo, uma imagem que mostra o uso da classe original e o uso da classe adaptada e em seguida postarei os códigos utilizados.
Caso tenham idéias de melhorias favor postar aqui para que todos tenham acesso.
abs.
Eliezer
TMultiFieldPanel.class
funcoesGerais.jquery: nesse arquivo estou adicionando funções jquery de uso geral em meus formulários e talvez sirva para alguém também. Nele temos funções como: Enter funcionando com Tab, Transformar texto digitado em maiúsculo, alinhamento dos input gerados pelo Designer e aplicação de css em tempo real
$(document).ready(function(){
/** código a executar quando o DOM estiver pronto para receber instruções.
*
FAZ ENTER FUNCIONAR COMO TAB **/
textboxes = $("input, select, textarea");
if ($.browser.mozilla) {
$(textboxes).keypress (checkForEnter);
} else {
$(textboxes).keydown (checkForEnter);
}
/** Transforma todas as letras em maiúscula após digitar */
$('input').keyup(function() {
$(this).val($(this).val().toUpperCase());
});
/** Aplica estilo em todos input select*/
$("input").each(function(){
var inputAlign = $(this).attr("align");
$(this).css({"font-size":"11px","text-align":inputAlign});
});
$("select").css({"font-size":"11px"});
/** Aplica estilo em todas label */
$("label").css({"color":"#1567FB","font-size":"11px"});
/** Aplica estilo em todas fieldset */
$("legend label").css({"font-weight":"bold"});
});
function checkForEnter (event) {
console.log(this);
if (event.keyCode == 13 || event.keyCode == 9) {
currentBoxNumber = textboxes.index(this);
//Desenvolvido para códigos de barras que precisam continuar no mesmo campo e executar a ação
if(textboxes[currentBoxNumber].name == "COD_BARRAS"){
//Verifica se o valor é nulo, se for vai para o proximo campo
if (textboxes[currentBoxNumber].value == "") {
nextBox = textboxes[currentBoxNumber + 1];
nextBox.focus();
event.preventDefault();
return false;
} else {
//Continua no próprio campo e executa a ação no focus do outro campo
nextBox = textboxes[currentBoxNumber + 1];
nextBox.focus();
nextBox = textboxes[currentBoxNumber];
event.preventDefault();
nextBox.focus();
return false;
}
} else {
if (textboxes[currentBoxNumber + 1] != null) {
nextBox = textboxes[currentBoxNumber + 1];
nextBox.focus();
event.preventDefault();
return false;
} else {
//Será o próprio campo
nextBox = textboxes[currentBoxNumber];
event.preventDefault();
nextBox.focus();
return false;
}
}
}
}
CORREÇÃO
Depois da atualização do framework ocorreu um erro em virtude das alterações provocadas pela referida atualização, que segue:
alterar <php private $formName; ?>
para <php protect $formName; ?></php></php>
alterar
para
Parabéns Eliezer,
sua implementação ficou muito bacana, o tema escolhido para seu TWindow ficou show de bola tbm. Vamos continuar contribuindo.
Forte abraço.
Eliezer,
Muito legal meu amigo. Se não for pedir muito, você poderia postar sua contribuição na aba "Contribuições" no formato de componente?
Seguindo as diretrizes de criação de novos componentes:
www.adianti.com.br/framework-extensibility
Assim, você poderia postar um único ZIP contendo o necessário para descompactar o componente e sair usando.
Um exemplo para compactar um componente que precisa de uma classe PHP e de um arquivo JS:
Assim, poderia usar o corpo da postagem para colocar as instruções de instalação, exemplo:
abraços!
Pablo
Algum link para download da nova aplicação?
Obrigado!