2011-08-04 9 views
0

テキストフィールドの文字数が10文字を超えていても、今すぐ送信が中止された場合、私は条件を使用してonsubmitを返していましたが、何も変更していないと思います条件を減らしても、明らかに私は何かをしたに違いない。value.length <10 return false not working

<form class="form-new" action="insert/insert.php" method="post" onsubmit="if (document.getElementById('post-input').value.length < 10) return false;"> 
    <textarea class="form-new" id="post-input" name="text"></textarea><br/> 
    <input type="hidden" name="ciudad" value="<?=$city;?>"> 
    <input type="text" name="colegio" value="<?=$group;?>"> 
    <input class="form-new" type="submit" value="Publicar"/> 
</form> 

ラウンドはありますか?それとも間違っているのですか?ありがとう

+0

"Works" here:http://jsfiddle.net/MBawQ/ –

+0

他のJSがそれを壊しているかどうかチェックしましたか?火かき棒は何を言いますか? – Kumar

+0

@Felix Kling:なぜここで動作しないのですか:http://jsfiddle.net/YNcU4/? – Naor

答えて

0

ここにはyour exampleです。

しかし、あなたがonsubmitでfalseを返すと、フォームはとにかく送信されます。

<script type="text/javascript"> 
    function checkLength() { 
     var textarea=document.getElementById('post-input'); 
    alert(textarea.value.length >= 10); 
     if (textarea.value.length >= 10) { 
      document.getElementById('myform').submit(); 
     } 
    } 
</script> 

<form class="form-new" action="insert/insert.php" id="myform" method="post"> 
    <textarea class="form-new" id="post-input" name="text"></textarea><br/> 
    <input type="hidden" name="ciudad" value="<?=$city;?>"> 
    <input type="text" name="colegio" value="<?=$group;?>"> 
    <input class="form-new" type="button" value="Publicar" onclick="checkLength()"/> 
</form> 

を、これはリンクです::そのような警告か何かを実行するために、あなたはこのような何かを行う必要がありhttp://jsfiddle.net/YNcU4/1/

更新日:コメントをお読みください。元のコードが機能するはずです。

+0

いいえ、 'onsubmit'からfalseを返すと、フォームは投稿されません。 – Jamiec

+0

'submit'イベントにバリデーションをバインドする方が、submitボタンの' click'イベントにバインドするよりも優れています。ボタンをクリックせずにフォームを送信することができます。 'return false'も' submit'イベントのために働きます。それ以外にJSは無効になっているので、あなたのフォームは役に立たなくなります。 –

+0

@Felix Kling:あなたと同意する - 私の間違い。 – Naor