Pergunta

Aqui está o problema:

A minha página exibe um conjunto de itens. Cada item tem uma caixa de seleção associada a ele (que é parte de um formulário). Usuário pode verificar qualquer um destes caixas de seleção e pressione o botão 'Delete'. A mesma página também tem um botão 'Upload', que iria carregar uma folha de excel de itens. No momento, meus sumbits ação de formulário para dizer: "xyzAction" e eu tenho dois manipuladores diferentes (análogas às Struts Ação) - um para eliminação de lojas e outra para as lojas de upload.

Foi-me dito que a melhor maneira de fazer isso é contar com javascript fazendo um destes: 1)) Switching ação de formulário on imprensa de enviar e apagar botões - não por invocação de ações diferentes. 2) Use uma variável "ato" escondida para configurá-lo para apagar / upload e submeter-se a um único formulário. A ação do lado do servidor iria cuidar de identificar o ato e de encaminhamento para a ação correspondente.

Abordagem (1) - parece muito deselegante para mim. Jogando com ação de formulário parece desnecessária. Approach (2) - seria, obviamente, não trabalho se o seu JavaScript está desligado e não é muito elegante, quer

.

Deve haver uma terceira maneira de fazer isso ?, que me faria feliz?

Foi útil?

Solução

Você precisa para obter o HTML correto em primeiro lugar.

Você tem duas ações diferentes, por isso você deve ter duas formas - uma boa regra de ouro é que cada formulário deve ter apenas um botão enviar. Esta é a melhor prática para HTML e vai garantir que a página funciona sem JS ou qualquer outro artifício.

Uma vez que você tem a página trabalhando assim, usar JS para manipular o DOM para produzir a interface do usuário que você precisa. Isso é usar JS para adicionar behvour para a interface do usuário e é a melhor prática para JS discretos.

(Se você realmente quer fundir suas ações em um único formulário, alterando a ação do formulário com JS é o melhor curso de ação. Mas considere o que aconteceria se um usuário verifica uma caixa de seleção e, em seguida, muda sua mente e Envia um arquivo de deixar a caixa de seleção marcada. Você deve tomar cuidado para que isso não deve nada delete.)

Outras dicas

Parece que você pode precisar de duas formas diferentes, para as duas ações diferentes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top