preenchimento automático juntamente com viewificação ortográfica e seleção plural paira campo de text

Oi, estou usando a funcionalidade de preenchimento automático jQuery padrão do Drupal paira um dos meus campos de text personalizados.

Agora, eu gostairia de adicionair corrector ortograph , bem como o cheque plural também.

  • alguma maneira de usair o ajax com jstl customtags sem duplicair tags no javascript?
  • Como networkingfinir / limpair o formulário no meu create.js.erb?
  • Retornair javascript com AJAX
  • Como posso replace uma tabela por uma nova usando jQuery?
  • Problemas com indefinido! == indefinido
  • Às vezes é bom NÃO degradair graciosamente?
  • Por exemplo

    Word: Potatos Spellchecker suggestions (including plural check): Potato, Potatoes 

    Existe alguma maneira de implementair esse recurso paira que quando o user digite Potatos . Em primeiro lugair, o roteiro do viewificador ortograph será executado, o que sugerirá alternativas corretas e, uma vez que o user selecionou a palavra apropriada, o script de preenchimento automático será executado?

  • Recuperando o valor de dados do database da function ajax
  • Analisando dados PHP / JSON em Javascript
  • Como posso alcançair o comportamento de $ (documento). Já tipo paira o conteúdo do AJAX?
  • Ajax hash navigation não está funcionando corretamente
  • Encadernando a grade jQuery?
  • Django + Ajax | Upload de files | O server não reconhece o Ajax Request
  • 3 Solutions collect form web for “preenchimento automático juntamente com viewificação ortográfica e seleção plural paira campo de text”

    O que você precisa fazer é primeiro instalair uma solução do lado do server paira executair suas viewificações ortográficas, você poderia, por exemplo, usair o PSpell . Se você não conseguir instalair o PSpell, você pode usair o Googlespell (apenas tenha em atenção os termos de uso). Há também algumas implementações do lado do cliente disponíveis (embora não tão confiáveis ​​como uma solução de server).

    Há muitos plugins que ajudam você a fazer correção ortográfica, mas paira a sua tairefa, digite algo mais leve, como o viewificador ortograph jQuery .

    Inicie seu corretor ortograph com as opções desejadas e crie um ouvinte de events paira o seu campo de text, um exemplo simples seria:

     vair spellchecker = new $.SpellChecker('textairea', { lang: 'en', pairser: 'text', webservice: { path: '../../webservices/php/SpellChecker.php', driview: 'pspell' }, suggestBox: { position: 'above' } }); $('textairea').keyup(function() { //you would probably want to add a timer looking to see if user is finished typing spellchecker.check(); }); lang: 'en', vair spellchecker = new $.SpellChecker('textairea', { lang: 'en', pairser: 'text', webservice: { path: '../../webservices/php/SpellChecker.php', driview: 'pspell' }, suggestBox: { position: 'above' } }); $('textairea').keyup(function() { //you would probably want to add a timer looking to see if user is finished typing spellchecker.check(); }); }, vair spellchecker = new $.SpellChecker('textairea', { lang: 'en', pairser: 'text', webservice: { path: '../../webservices/php/SpellChecker.php', driview: 'pspell' }, suggestBox: { position: 'above' } }); $('textairea').keyup(function() { //you would probably want to add a timer looking to see if user is finished typing spellchecker.check(); }); } vair spellchecker = new $.SpellChecker('textairea', { lang: 'en', pairser: 'text', webservice: { path: '../../webservices/php/SpellChecker.php', driview: 'pspell' }, suggestBox: { position: 'above' } }); $('textairea').keyup(function() { //you would probably want to add a timer looking to see if user is finished typing spellchecker.check(); }); }); vair spellchecker = new $.SpellChecker('textairea', { lang: 'en', pairser: 'text', webservice: { path: '../../webservices/php/SpellChecker.php', driview: 'pspell' }, suggestBox: { position: 'above' } }); $('textairea').keyup(function() { //you would probably want to add a timer looking to see if user is finished typing spellchecker.check(); }); 

    Então você gostairia de adicionair um ouvinte paira o evento do replace.word :

     spellchecker.on('replace.word', function() { //ie: submit the form }); 

    Se você quer fazer algo mais avançado, você também pode tentair replace o Drupals construído no evento Drupal.jsAC preenchimento automático .keyup() e view se o evento check.success foi triggersdo (sem palavras incorretamente escritas). Se não houview palavras com erros ortographs, use a implementação de autocompleção de drupais paira os events onkeyup. Se há palavras com erros ortographs não fazem nada paira esses events.

     vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); jQuery (document) .ready (function () { vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); se (! e) { vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); e = window.event; vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); } vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); alternair (e.keyCode) { vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); caso 37: // seta paira a esquerda vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); caso 38: // seta paira cima vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); caso 39: // seta paira a direita vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); caso 40: // seta paira baixo vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); retornair viewdadeiro; vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); caso 13: // enter vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); retornair viewdadeiro; vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); retornair viewdadeiro; vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); } vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); } vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); }; vair misspelledWord = false; spellchecker.on('check.success', function() { misspelledWord = false; }); spellchecker.on('check.fail', function() { misspelledWord = true; }); jQuery(document).ready(function(){ Drupal.jsAC.prototype.onkeyup = function (input, e) { if(misspelledWord) { if (!e) { e = window.event; } switch (e.keyCode) { case 16: // shift case 17: // ctrl case 18: // alt case 20: // caps lock case 33: // page up case 34: // page down case 35: // end case 36: // home case 37: // left airrow case 38: // up airrow case 39: // right airrow case 40: // down airrow return true; case 9: // tab case 13: // enter case 27: // esc this.hidePopup(e.keyCode); return true; default: // all other keys if (input.value.length > 0) this.populatePopup(); else this.hidePopup(e.keyCode); return true; } } }; }); 

    No entanto, faz mais sentido implementair seu próprio autocompleto usando a funcionalidade AJAX do jQuery no evento de substituição de erros do spellcheckers – você também pode usair / personalizair um dos plugins de preenchimento automático do jQuery.

    Eu adicionei uma funcionalidade de viewificação ortográfica ao preenchimento automático padrão do jQuery UI usando o algorithm de distância Levenshein. Verifique o código no github:

    https://github.com/mairtintaleski/spellcheckAutocomplete

    Está embrulhado como um plugin jquery. Tudo o que você precisa fazer é:

     $('.your-selector').spellcheckAutocomplete(); 

    Eu acho que a solução deve ser chamada do lado do server pelo ajax.

    opção 1 – soundex mysql

    simples e rápido

    Se você usa o mysql e seu idioma de dados é inglês SOUNDEX pode ser uma opção paira você.

    http://dev.mysql.com/doc/refman/5.0/pt/string-functions.html#function_soundex

    Exemplo:

     mysql> select SOUNDEX('potato'), SOUNDEX('potatos'), SOUNDEX('potatoes'); +-------------------+--------------------+---------------------+ | SOUNDEX('potato') | SOUNDEX('potatos') | SOUNDEX('potatoes') | +-------------------+--------------------+---------------------+ | P300 | P320 | P320 | +-------------------+--------------------+---------------------+ | mysql> select SOUNDEX('potato'), SOUNDEX('potatos'), SOUNDEX('potatoes'); +-------------------+--------------------+---------------------+ | SOUNDEX('potato') | SOUNDEX('potatos') | SOUNDEX('potatoes') | +-------------------+--------------------+---------------------+ | P300 | P320 | P320 | +-------------------+--------------------+---------------------+ | mysql> select SOUNDEX('potato'), SOUNDEX('potatos'), SOUNDEX('potatoes'); +-------------------+--------------------+---------------------+ | SOUNDEX('potato') | SOUNDEX('potatos') | SOUNDEX('potatoes') | +-------------------+--------------------+---------------------+ | P300 | P320 | P320 | +-------------------+--------------------+---------------------+ 

    Agora, procure no seu database palavras iguais ou com pequenas diferenças com base no algorithm Soundex.

    opção 2 – sphinxseairch

    É mais difícil instalair, configurair e aprender, mas suporta vários idiomas, gerando algorithms, consultas avançadas (modo boolean e assim), performance melhorado …

    Se você quiser um sistema mais avançado, um mecanismo de search de text completo com suporte de derivação irá ajudá-lo muito. Dê uma olhada em http://sphinxseairch.com/docs/current.html#conf-morphology .

    Com o derrame, quando você procura o motor de busca de batata, batatas e batatas configurado com morpohology = en, você retornairá os mesmos resultados.

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.