Desabilitar Enter

Pessoal, alguém sabe como faço para desabilitar o Enter no formulário?

Quando monto o form na mão eu faço assim:




<form name="form" action="documento.php" method="POST" onsubmit="return false;">

<input type="text" name="nome" value="">

<input type="button" value="envio" onclick="document.form.submit();">

</form>



Estou tentando fazer no Yii o seguinte:




<?php $form=$this->beginWidget('CActiveForm', array(

	...

// Para <form name="form" action="documento.php" method="POST" onsubmit="return false;">

 	'clientOptions' => array('validateOnSubmit' => true),

	...

)); ?>




<?php 

// Para <input type="button" value="envio" onclick="document.form.submit();"> Só que este pedaço não sei como fazer:

	echo CHtml::submitButton($model->isNewRecord ? 'Inserir ficha' : 'Salvar ficha',array('class'=>'submit')); 

?>



Alguem sabe se tem uma forma mais fácil de desabilitar o Enter e que funcione?

Tu quer que obrigatoriamente o usuário clica no botão?

Qual a finalidade?

Se for para validação do formulário usa mais ou menos assim:




$form = $this->beginWidget('CActiveForm', array(

            'enableAjaxValidation' => true,

            'clientOptions' => array('validateOnSubmit' => true, 'validateOnChange' => true),

        ));



Não é bem exatamente para validar o formulário, é o seguinte, alguns itens do formulário não são obrigatórios, e depois de preencher os obrigatórios os usuários estão apertando Enter sem querer e sem ter preenchido o restante do formulário, se eu forçar o submit só pelo botão ai não terei mais este problema.

Vou testar o que vc falou. Valeu!

Testei com o que o Newerton passou mas infelizmente não tive sucesso, após preencher os campos obrigatórios o formulário ainda aceita o Enter para dar submit.

Mais ai que está, se os outros campos não são obrigatorio, não será nescessário o preenchimento!

Este é o conceito!

Se deseja que outros campos seja preenchido, coloca obrigatoriedade neles!

Por que simplesmente o usuário pode preencher o campos obrigatório, e clicar no botão, terá o mesmo feito, de preencher os campos obrigatório e apertar ENTER.

Vê ae!

Concordo com Newerton, talvez não seja o caminho…

Mas se de fato achar que vai melhorar a usabilidade, o código no cliente (jQuery) é algo assim:

$("#form").keypress(function(e) {

if (e.which == 13) {

return false;

}

});

O meu tb é igual!




$('input, select').keydown(function(e){

            if (e.keyCode == 13) {

                $('button[id=filtrar]').trigger('click');

                return false;

            }

        });



Não sei por que, deve ser regra do navegador, quando o foco está emcima do <select> o ENTER não submete o formulário ai tive que fazer isso ae.

Mais no seu caso, tu remove o trigger.

Pq vc não faz exatamente como vc fazia antes?


<input type="button" value="envio" onclick="document.form.submit();">

Vai dar menos código do que usar a função submitButton e ficar fazendo um monte de coisas em js pra evitar que o form seja enviado.