2011-08-04 122 views
0

如果文本字段沒有超過10個字符,但我剛剛停止提交,我使用的條件onsubmit返回false,我不認爲我改變了任何東西少一些條件,但顯然我必須做點什麼。value.length <10返回false不工作

<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

「作品」在這裏:http://jsfiddle.net/MBawQ/ –

+0

它也適用於我,你檢查是否有其他JS打破它?螢火蟲說什麼? – Kumar

+0

@Felix Kling:爲什麼它不在這裏工作:http://jsfiddle.net/YNcU4/? – Naor

回答

0

這裏是your example

但是看看,如果您在提交中返回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'事件優於將它綁定到提交按鈕的'click'事件。無需點擊按鈕即可提交表單。 'return false'也適用於'submit'事件。除此之外,它被禁用,你的表單將變得毫無用處。 –

+0

@Felix Kling:同意你 - 我的錯誤。 – Naor