Pergunta

Eu tenho um formulário que eu atualmente enumerar com um pouco de Javascript funcionalidade e, em seguida, poste-o com jQuery .ajax() para um controlador MVC ação.Eu tenho algumas perguntas sobre as minhas opções se eu queria adicionar tradicional (sem javascript) suporte para postar este formulário.

1) A coisa é que eu tenho alguns dados que não é em campos, mas ele é apenas texto em divs.Desde que eu estou atualmente lançamento do AJAX, eu posso obter o conteúdo destas divs por sua identificação antes de postar e incluí-los no post.Eu suponho que esta informação irá estar em falta a partir de uma tradicional POST.

Uma idéia é fazer um <input> para essas divs também, mas escondê-lo na página.E, em seguida, usar aqueles em POST.

2) Se eu decidir usar apenas AJAX post, pode me livrar completamente o formulário?

3) Dado que eu fique com o fórum, o formato que você sugere para usar para postar valores?JSON, delimitado por vírgulas (problemático para dados complexos), alguma outra coisa?

4) você normalmente de apoio de ambas as formas?Porque se eu olhar para o meu formas de agora, eles usam uma tonelada de jQuery e o jQuery UI funcionalidade e estes seriam um exagero para implementar, sem JavaScript.Qual é a probabilidade de que os usuários não terão JS habilitado e é ok para apenas dizer "JS é necessário"?

Para este caso concreto, estou construindo um inhouse, em demanda que não será orientado a web (pelo menos não ainda), então eu tenho uma opção para dizer que a JS é necessária.

ty

Foi útil?

Solução

Se você deseja seguir o caminho de manter um site viável sem JavaScript, sugiro que você comece fazendo um site as obras sem ele, use o JavaScript para modificar essa interface para o que você realmente deseja com o JavaScript ativado. Isso implicaria a partir de toda a entrada contida em input elementos, substituindo esses elementos usando JavaScript por seu div elementos - ou, mais realisticamente, removendo o inputs e mostrando o pré-existente div elementos.

Não vejo necessidade de me livrar do formulário, mesmo ao usar o Ajax, embora tecnicamente não haja razão para tê -lo. Uma coisa que eu gosto de fazer, no entanto, é manter a forma e depois fazer meu método de envio puxar a ação do form Tag para que eu não precise codificá -lo diretamente no JavaScript. Você pode achar que isso facilita o compartilhamento de JavaScript entre seus vários formulários.

Eu sempre serializo para solicitar parâmetros, assim como o formulário normalmente. A maneira mais fácil de fazer isso é com o jQuery serialize método, mas isso funcionará apenas nas entradas. Você também pode construir um hash (pares de valor-chave em um objeto) e fornecer isso como parâmetro de dados para o seu AJAX. Será serializada automaticamente para solicitar parâmetros. Usar qualquer outra coisa exigirá que você desserialize usando seu próprio código em vez do código de ligação do modelo no MVC.

Para aplicativos da Web voltados para o público, tento manter a interface funcionando para navegadores habilitados para JavaScript e-Disabled. Os navegadores não-Javascript às vezes não têm acesso a determinados recursos. Para aplicativos internos, eu ficaria confortável em exigir JavaScript, já que você (ou alguém da sua empresa) tem mais controle sobre ela.

Outras dicas

Eu colocaria o div texto em campos ocultos - caso contrário, ele não vai ser pego por correio tradicional.

Eu, pessoalmente, iria não livrar-se do formulário, como o que acontece se o JS está desabilitado/quebrado por algum motivo?Mesmo se o usuário tiver JS habilitado, se (por exemplo) um arquivo JS não carregar o seu formulário não será capaz de enviar os dados por AJAX.Tem o AJAX, mas certifique-se de que você pode cair para trás a tradicional forma de POST.

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